{"id":8,"date":"2026-02-21T16:19:10","date_gmt":"2026-02-21T16:19:10","guid":{"rendered":"https:\/\/plan.spedition-markus.de\/?page_id=8"},"modified":"2026-02-23T14:54:25","modified_gmt":"2026-02-23T14:54:25","slug":"tourenplan","status":"publish","type":"page","link":"https:\/\/plan.spedition-markus.de\/","title":{"rendered":"Tourenplan"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"8\" class=\"elementor elementor-8\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7fe78818 e-flex e-con-boxed e-con e-parent\" data-id=\"7fe78818\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6bc34991 elementor-widget elementor-widget-text-editor\" data-id=\"6bc34991\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t\n        <div id=\"tp-app\" class=\"tourenplan-wrap\" data-view=\"week\">\n\n            <!-- User Selection Overlay -->\n            <div id=\"tp-user-select\" class=\"tp-overlay\">\n                <div class=\"tp-overlay-box\">\n                    <h2>\ud83d\udc64 Benutzer ausw\u00e4hlen<\/h2>\n                    <p>Bitte w\u00e4hle deinen Namen:<\/p>\n                    <div class=\"tp-user-buttons\">\n                                                    <button class=\"tp-user-btn\" data-user-id=\"1\" data-user-name=\"Katharina\">\n                                Katharina                            <\/button>\n                                                    <button class=\"tp-user-btn\" data-user-id=\"2\" data-user-name=\"Denis\">\n                                Denis                            <\/button>\n                                                    <button class=\"tp-user-btn\" data-user-id=\"3\" data-user-name=\"Mario\">\n                                Mario                            <\/button>\n                                            <\/div>\n                    <div id=\"tp-login-password-box\" style=\"display:none;margin-top:16px;text-align:center;\">\n                        <p id=\"tp-login-user-label\" style=\"font-weight:600;margin-bottom:8px;\"><\/p>\n                        <input type=\"password\" id=\"tp-login-password\" placeholder=\"Passwort eingeben...\" style=\"padding:8px 12px;width:200px;border:1px solid #ccc;border-radius:4px;font-size:14px;\">\n                        <div style=\"margin-top:10px;display:flex;gap:8px;justify-content:center;\">\n                            <button class=\"tp-btn tp-btn-primary\" id=\"tp-login-submit\">\ud83d\udd11 Anmelden<\/button>\n                            <button class=\"tp-btn\" id=\"tp-login-back\">\u2190 Zur\u00fcck<\/button>\n                        <\/div>\n                        <p id=\"tp-login-error\" style=\"color:#c00;font-size:12px;margin-top:8px;display:none;\"><\/p>\n                    <\/div>\n                <\/div>\n            <\/div>\n\n            <!-- Toolbar -->\n            <div class=\"tp-toolbar\">\n                <div class=\"tp-toolbar-left\">\n                    <button class=\"tp-btn tp-nav-prev\" title=\"Vorherige Woche\">\u25c0<\/button>\n                    <button class=\"tp-btn tp-nav-today\" title=\"Aktuelle Woche\">Heute<\/button>\n                    <button class=\"tp-btn tp-nav-next\" title=\"N\u00e4chste Woche\">\u25b6<\/button>\n                    <span class=\"tp-current-label\"><\/span>\n                <\/div>\n                <div class=\"tp-toolbar-right\">\n                    <select class=\"tp-view-select\">\n                        <option value=\"week\">Woche<\/option>\n                        <option value=\"month\">Monat<\/option>\n                    <\/select>\n                    <button class=\"tp-btn tp-btn-print\" title=\"Drucken\">\ud83d\udda8\ufe0f<\/button>\n                    <button class=\"tp-btn tp-btn-backup\" title=\"Backup \/ Wiederherstellen\">\ud83d\udcbe<\/button>\n                    <button class=\"tp-btn tp-btn-users\" title=\"Benutzer verwalten\">\ud83d\udc65<\/button>\n                    <div class=\"tp-online-users\" title=\"Online-Benutzer\"><\/div>\n                    <span class=\"tp-user-name\"><\/span>\n                    <button class=\"tp-btn tp-btn-password\" title=\"Passwort \u00e4ndern\">\ud83d\udd11<\/button>\n                    <button class=\"tp-btn tp-btn-logout\" title=\"Abmelden\">\u21a9\ufe0f<\/button>\n                <\/div>\n            <\/div>\n\n            <!-- Loading -->\n            <div class=\"tp-loading\" style=\"display:none;\">\n                <div class=\"tp-spinner\"><\/div>\n                <span>Lade Tourenplan&#8230;<\/span>\n            <\/div>\n\n            <!-- Main Table Container -->\n            <div class=\"tp-table-container\">\n                <table class=\"tp-table\">\n                    <thead id=\"tp-thead\"><\/thead>\n                    <tbody id=\"tp-tbody\"><\/tbody>\n                    <tfoot id=\"tp-tfoot\"><\/tfoot>\n                <\/table>\n            <\/div>\n\n            <!-- Access Request Popup -->\n            <div id=\"tp-access-popup\" class=\"tp-popup\" style=\"display:none;\">\n                <div class=\"tp-popup-content\">\n                    <h3>\ud83d\udd12 Zugriff angefordert<\/h3>\n                    <p id=\"tp-access-msg\"><\/p>\n                    <div class=\"tp-popup-actions\">\n                        <button class=\"tp-btn tp-btn-primary\" id=\"tp-access-grant\">\u2705 Zulassen<\/button>\n                        <button class=\"tp-btn\" id=\"tp-access-deny\">\u274c Ablehnen<\/button>\n                    <\/div>\n                <\/div>\n            <\/div>\n\n            <!-- Print Dialog -->\n            <div id=\"tp-print-dialog\" class=\"tp-popup\" style=\"display:none;\">\n                <div class=\"tp-popup-content\">\n                    <h3>\ud83d\udda8\ufe0f Druckansicht<\/h3>\n                    <div class=\"tp-print-options\">\n                        <label><input type=\"radio\" name=\"tp-print-mode\" value=\"week\" checked> Aktuelle Woche<\/label>\n                        <label><input type=\"radio\" name=\"tp-print-mode\" value=\"month\"> Ganzer Monat<\/label>\n                    <\/div>\n                    <div class=\"tp-popup-actions\">\n                        <button class=\"tp-btn tp-btn-primary\" id=\"tp-print-go\">Drucken<\/button>\n                        <button class=\"tp-btn\" id=\"tp-print-cancel\">Abbrechen<\/button>\n                    <\/div>\n                <\/div>\n            <\/div>\n\n            <!-- Cell Edit Popup -->\n            <div id=\"tp-edit-popup\" class=\"tp-popup\" style=\"display:none;\">\n                <div class=\"tp-popup-content tp-edit-form\">\n                    <h3>\u270f\ufe0f Eintrag bearbeiten<\/h3>\n                    <input type=\"hidden\" id=\"tp-edit-vehicle-id\">\n                    <input type=\"hidden\" id=\"tp-edit-date\">\n                    <div class=\"tp-form-row\">\n                        <label>Fahrer<\/label>\n                        <input type=\"text\" id=\"tp-edit-driver\" autocomplete=\"off\">\n                    <\/div>\n                    <div class=\"tp-form-row\">\n                        <label>Auftrag<\/label>\n                        <input type=\"text\" id=\"tp-edit-action\" list=\"tp-actions-list\" autocomplete=\"off\">\n                        <datalist id=\"tp-actions-list\"><\/datalist>\n                    <\/div>\n                    <div class=\"tp-form-row\">\n                        <label>Auftrag<\/label>\n                        <textarea id=\"tp-edit-description\" rows=\"3\"><\/textarea>\n                    <\/div>\n                    <div class=\"tp-form-row\">\n                        <label>Auftrag<\/label>\n                        <input type=\"text\" id=\"tp-edit-client\" list=\"tp-clients-list\" autocomplete=\"off\">\n                        <datalist id=\"tp-clients-list\"><\/datalist>\n                    <\/div>\n                    <div class=\"tp-form-row\">\n                        <label>Hervorhebung<\/label>\n                        <select id=\"tp-edit-highlight\">\n                            <option value=\"\">Keine<\/option>\n                            <option value=\"#FF00FF\">Magenta<\/option>\n                            <option value=\"#FFD700\">Gold<\/option>\n                            <option value=\"#FF6B6B\">Rot<\/option>\n                            <option value=\"#4ECDC4\">T\u00fcrkis<\/option>\n                        <\/select>\n                    <\/div>\n                    <div class=\"tp-popup-actions\">\n                        <button class=\"tp-btn tp-btn-primary\" id=\"tp-edit-save\">\ud83d\udcbe Speichern<\/button>\n                        <button class=\"tp-btn tp-btn-danger\" id=\"tp-edit-delete\" style=\"display:none;\">\ud83d\uddd1\ufe0f L\u00f6schen<\/button>\n                        <button class=\"tp-btn\" id=\"tp-edit-cancel\">Abbrechen<\/button>\n                    <\/div>\n                <\/div>\n            <\/div>\n\n            <!-- Vehicle Edit Popup -->\n            <div id=\"tp-vehicle-popup\" class=\"tp-popup\" style=\"display:none;\">\n                <div class=\"tp-popup-content tp-edit-form\">\n                    <h3>\ud83d\ude9b Fahrzeug bearbeiten<\/h3>\n                    <input type=\"hidden\" id=\"tp-vedit-id\">\n                    <div class=\"tp-form-row\"><label>Kennzeichen (LKW)<\/label><input type=\"text\" id=\"tp-vedit-truck\"><\/div>\n                    <div class=\"tp-form-row\"><label>Anh\u00e4nger<\/label><input type=\"text\" id=\"tp-vedit-trailer\"><\/div>\n                    <div class=\"tp-form-row\"><label>Typ<\/label><input type=\"text\" id=\"tp-vedit-type\"><\/div>\n                    <div class=\"tp-form-row\"><label>Fahrer<\/label><input type=\"text\" id=\"tp-vedit-driver\"><\/div>\n                    <div class=\"tp-form-row\"><label>Zeilenfarbe<\/label><input type=\"color\" id=\"tp-vedit-color\" value=\"#FFFF99\" style=\"width:60px;height:32px;padding:2px;border:1px solid #ccc;border-radius:4px;cursor:pointer;\"><\/div>\n                    <div class=\"tp-popup-actions\">\n                        <button class=\"tp-btn tp-btn-primary\" id=\"tp-vedit-save\">\ud83d\udcbe Speichern<\/button>\n                        <button class=\"tp-btn\" id=\"tp-vedit-cancel\">Abbrechen<\/button>\n                    <\/div>\n                <\/div>\n            <\/div>\n\n            <!-- Vacation Popup -->\n            <div id=\"tp-vacation-popup\" class=\"tp-popup\" style=\"display:none;\">\n                <div class=\"tp-popup-content tp-edit-form\">\n                    <h3>\ud83c\udfd6\ufe0f Urlaub verwalten<\/h3>\n                    <input type=\"hidden\" id=\"tp-vac-id\">\n                    <input type=\"hidden\" id=\"tp-vac-vehicle-id\">\n                    <p id=\"tp-vac-driver-label\" style=\"font-weight:600;margin:0 0 12px;\"><\/p>\n                    <div class=\"tp-form-row\">\n                        <label>Von<\/label>\n                        <input type=\"date\" id=\"tp-vac-from\">\n                    <\/div>\n                    <div class=\"tp-form-row\">\n                        <label>Bis<\/label>\n                        <input type=\"date\" id=\"tp-vac-to\">\n                    <\/div>\n                    <div class=\"tp-form-row\">\n                        <label>Notiz (optional)<\/label>\n                        <input type=\"text\" id=\"tp-vac-note\" placeholder=\"z.B. Resturlaub\">\n                    <\/div>\n                    <div id=\"tp-vac-existing\" style=\"margin:12px 0;max-height:200px;overflow-y:auto;\">\n                        <!-- Filled by JS -->\n                    <\/div>\n                    <div class=\"tp-popup-actions\">\n                        <button class=\"tp-btn tp-btn-primary\" id=\"tp-vac-save\">\ud83d\udcbe Speichern<\/button>\n                        <button class=\"tp-btn tp-btn-danger\" id=\"tp-vac-delete\" style=\"display:none;\">\ud83d\uddd1\ufe0f L\u00f6schen<\/button>\n                        <button class=\"tp-btn\" id=\"tp-vac-cancel\">Abbrechen<\/button>\n                    <\/div>\n                <\/div>\n            <\/div>\n\n            <!-- Password Change Popup -->\n            <div id=\"tp-password-popup\" class=\"tp-popup\" style=\"display:none;\">\n                <div class=\"tp-popup-content tp-edit-form\">\n                    <h3>\ud83d\udd11 Passwort \u00e4ndern<\/h3>\n                    <div class=\"tp-form-row\" id=\"tp-pw-current-row\">\n                        <label>Aktuelles Passwort<\/label>\n                        <input type=\"password\" id=\"tp-pw-current\">\n                    <\/div>\n                    <div class=\"tp-form-row\">\n                        <label>Neues Passwort<\/label>\n                        <input type=\"password\" id=\"tp-pw-new\">\n                    <\/div>\n                    <div class=\"tp-form-row\">\n                        <label>Neues Passwort best\u00e4tigen<\/label>\n                        <input type=\"password\" id=\"tp-pw-confirm\">\n                    <\/div>\n                    <p id=\"tp-pw-error\" style=\"color:#c00;font-size:12px;display:none;\"><\/p>\n                    <p id=\"tp-pw-success\" style=\"color:#080;font-size:12px;display:none;\"><\/p>\n                    <div class=\"tp-popup-actions\">\n                        <button class=\"tp-btn tp-btn-primary\" id=\"tp-pw-save\">\ud83d\udcbe Speichern<\/button>\n                        <button class=\"tp-btn\" id=\"tp-pw-cancel\">Abbrechen<\/button>\n                    <\/div>\n                <\/div>\n            <\/div>\n\n            <!-- User Management Popup -->\n            <div id=\"tp-users-popup\" class=\"tp-popup\" style=\"display:none;\">\n                <div class=\"tp-popup-content tp-edit-form\">\n                    <h3>\ud83d\udc65 Benutzer verwalten<\/h3>\n                    <div id=\"tp-users-list\" class=\"tp-users-manage-list\">\n                        <!-- Filled by JS -->\n                    <\/div>\n                    <div class=\"tp-form-row\" style=\"margin-top:16px;\">\n                        <label>Neuen Benutzer hinzuf\u00fcgen<\/label>\n                        <div style=\"display:flex;gap:8px;\">\n                            <input type=\"text\" id=\"tp-new-user-name\" placeholder=\"Name eingeben...\">\n                            <button class=\"tp-btn tp-btn-primary\" id=\"tp-add-user-btn\">\u2795 Hinzuf\u00fcgen<\/button>\n                        <\/div>\n                    <\/div>\n                    <div class=\"tp-popup-actions\">\n                        <button class=\"tp-btn\" id=\"tp-users-close\">Schlie\u00dfen<\/button>\n                    <\/div>\n                <\/div>\n            <\/div>\n\n            <!-- Backup \/ Restore Popup -->\n            <div id=\"tp-backup-popup\" class=\"tp-popup\" style=\"display:none;\">\n                <div class=\"tp-popup-content tp-edit-form\" style=\"max-width:520px;\">\n                    <h3>\ud83d\udcbe Backup &amp; Wiederherstellen<\/h3>\n\n                    <div class=\"tp-admin-card\" style=\"margin:0 0 16px;padding:14px;border:1px solid #d4edda;border-radius:6px;background:#f0fff0;\">\n                        <h4 style=\"margin:0 0 8px;font-size:14px;\">\ud83d\udcbb Lokales Backup<\/h4>\n                        <p style=\"font-size:12px;color:#666;margin:0 0 10px;\">Sichert alle Daten (Fahrzeuge, Eintr\u00e4ge, Notizen, Urlaube, Benutzer) als Backup-Datei auf deinem Computer.<br><strong>Empfohlen vor jedem Plugin-Update!<\/strong><\/p>\n                        <button class=\"tp-btn tp-btn-primary\" id=\"tp-backup-local\">\ud83d\udcbe Backup herunterladen<\/button>\n                        <span id=\"tp-backup-local-status\" style=\"margin-left:10px;font-size:12px;\"><\/span>\n                    <\/div>\n\n                    <div class=\"tp-admin-card\" style=\"margin:0 0 16px;padding:14px;border:1px solid #fff3cd;border-radius:6px;background:#fffdf5;\">\n                        <h4 style=\"margin:0 0 8px;font-size:14px;\">\ud83d\udcc2 Lokales Backup wiederherstellen<\/h4>\n                        <p style=\"font-size:12px;color:#856404;margin:0 0 10px;\"><strong>Achtung:<\/strong> \u00dcberschreibt alle aktuellen Daten! Akzeptiert <code>.tpbackup<\/code> und <code>.json<\/code> Dateien.<\/p>\n                        <input type=\"file\" id=\"tp-restore-local-file\" accept=\".tpbackup,.json\" style=\"font-size:13px;\">\n                        <div style=\"margin-top:10px;\">\n                            <button class=\"tp-btn tp-btn-danger\" id=\"tp-restore-local-btn\" disabled>\ud83d\udd04 Wiederherstellen<\/button>\n                        <\/div>\n                    <\/div>\n\n                    <hr style=\"border:none;border-top:1px solid #ddd;margin:16px 0;\">\n\n                    <div class=\"tp-admin-card\" style=\"margin:0 0 16px;padding:14px;border:1px solid #e0e0e0;border-radius:6px;\">\n                        <h4 style=\"margin:0 0 8px;font-size:14px;\">\u2601\ufe0f Nextcloud Backup<\/h4>\n                        <p style=\"font-size:12px;color:#666;margin:0 0 10px;\">Erstellt ein Backup auf der Nextcloud.<\/p>\n                        <button class=\"tp-btn tp-btn-primary\" id=\"tp-backup-now\">\ud83d\udcbe Backup jetzt erstellen<\/button>\n                        <span id=\"tp-backup-status\" style=\"margin-left:10px;font-size:12px;\"><\/span>\n                    <\/div>\n\n                    <div class=\"tp-admin-card\" style=\"margin:0 0 16px;padding:14px;border:1px solid #e0e0e0;border-radius:6px;\">\n                        <h4 style=\"margin:0 0 8px;font-size:14px;\">\ud83d\udce4 Backup-Verlauf<\/h4>\n                        <div id=\"tp-backup-history\" style=\"max-height:200px;overflow-y:auto;font-size:12px;\">\n                            <em>Lade&#8230;<\/em>\n                        <\/div>\n                        <div style=\"margin-top:10px;\">\n                            <button class=\"tp-btn tp-btn-primary\" id=\"tp-restore-nc-btn\">\ud83d\udd04 Letztes Nextcloud-Backup einspielen<\/button>\n                        <\/div>\n                    <\/div>\n\n                    <div class=\"tp-popup-actions\">\n                        <button class=\"tp-btn\" id=\"tp-backup-close\">Schlie\u00dfen<\/button>\n                    <\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n        \n\n<p>\u00a0<\/p>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>\u00a0<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-8","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/plan.spedition-markus.de\/index.php\/wp-json\/wp\/v2\/pages\/8","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/plan.spedition-markus.de\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/plan.spedition-markus.de\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/plan.spedition-markus.de\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/plan.spedition-markus.de\/index.php\/wp-json\/wp\/v2\/comments?post=8"}],"version-history":[{"count":11,"href":"https:\/\/plan.spedition-markus.de\/index.php\/wp-json\/wp\/v2\/pages\/8\/revisions"}],"predecessor-version":[{"id":47,"href":"https:\/\/plan.spedition-markus.de\/index.php\/wp-json\/wp\/v2\/pages\/8\/revisions\/47"}],"wp:attachment":[{"href":"https:\/\/plan.spedition-markus.de\/index.php\/wp-json\/wp\/v2\/media?parent=8"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}