Kleine Verbesserungen und Teams, Outlook Integration
- Outlook: Kalender-Abo je Konto (eigene Aufgaben, Meilensteine, Abwesenheiten als .ics), einzurichten unter Einstellungen - Teams: Nachricht in einen Kanal bei neuen Aufgaben, mit Link direkt auf die Aufgabe; einzurichten unter Admin → Teams - Sitzungen nach Bedarf laden: beim Start nur die aktuelle und drei davor, im Verlauf „Weitere laden“ in Fünferschritten - Termin aus Mail: Wahl Aufgabe/Meilenstein, Notiz auch bei Meilensteinen, nur aktiv mit eingerichteter KI - Kalender zeigt die KW, auch statt der Browser-Datumsfelder - Pfeile bei den Abwesenheiten, kleinere Server-Korrekturen Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
a2266662ad
commit
4c2e04e78b
19 files changed
+1100
-139
No files matched your search
+54
-16
@@ -38,8 +38,8 @@
|
||||
<link rel="icon" type="image/png" href="/logo.png">
|
||||
<link rel="alternate icon" href="/logo.ico">
|
||||
<link rel="apple-touch-icon" href="/logo.png">
|
||||
<link rel="stylesheet" href="/styles.css?v=106">
|
||||
<link rel="stylesheet" href="/plan-styles.css?v=43">
|
||||
<link rel="stylesheet" href="/styles.css?v=110">
|
||||
<link rel="stylesheet" href="/plan-styles.css?v=45">
|
||||
<!-- Glas-Darstellung (public/glas.css, als letztes Stylesheet): greift nur mit
|
||||
der Klasse html.glas. Gesetzt wird sie hier, vor dem ersten Zeichnen,
|
||||
damit die Seite nicht erst ohne Glas aufblitzt; abschaltbar je Browser
|
||||
@@ -234,6 +234,7 @@
|
||||
<button class="menu-item sidebar-subitem" data-admin-section="vorlagen" onclick="showAdminSection('vorlagen')">Aufgaben-Vorlagen</button>
|
||||
<button class="menu-item sidebar-subitem" data-admin-section="planchecker" onclick="showAdminSection('planchecker')">Plan-Checker-Merkmale</button>
|
||||
<button class="menu-item sidebar-subitem" data-admin-section="betrieb" onclick="showAdminSection('betrieb')">Betrieb & Sicherheit</button>
|
||||
<button class="menu-item sidebar-subitem" data-admin-section="teams" onclick="showAdminSection('teams')">Teams</button>
|
||||
<button class="menu-item sidebar-subitem" data-admin-section="papierkorb" onclick="showAdminSection('papierkorb')">Papierkorb</button>
|
||||
<button class="menu-item sidebar-subitem" data-admin-section="datenbank" onclick="showAdminSection('datenbank')">Datenbank & Sitzungen</button>
|
||||
</div>
|
||||
@@ -455,6 +456,16 @@
|
||||
mit Fehlertext, der bis zum nächsten Testergebnis stehen bleibt
|
||||
(Design-Entwürfe mit Erik abgestimmt: Artifacts d7ab2945,
|
||||
01fe1346). -->
|
||||
<!-- Kalender-Abo für Outlook (renderSettingsKalender(), js/settings/settings.js;
|
||||
Server: /mein-kalender, /kalender/<token>.ics) -->
|
||||
<section class="settings-card" id="settingsKalenderCard">
|
||||
<h3 class="settings-card-title">Kalender in Outlook</h3>
|
||||
<p class="hint">Ihre offenen Aufgaben, die Meilensteine Ihrer Projekte und Ihre
|
||||
Abwesenheiten als Kalender in Outlook — nur zum Ansehen, geändert wird weiter hier.
|
||||
Outlook aktualisiert ihn selbst (je nach Outlook stündlich bis alle paar Stunden).</p>
|
||||
<div id="settingsKalender"></div>
|
||||
</section>
|
||||
|
||||
<section class="settings-card" id="settingsAiCard">
|
||||
<h3 class="settings-card-title">KI-Zugangsdaten</h3>
|
||||
<p class="hint">Für die automatische Punkt-Erkennung beim Protokoll-Import
|
||||
@@ -665,6 +676,28 @@
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Teams-Anbindung (loadAdminTeams(), js/admin/admin.js; Server: /admin/teams*) -->
|
||||
<section class="settings-card" id="adminTeamsCard" data-admin-section="teams" style="display:none">
|
||||
<h3 class="settings-card-title">Teams <span class="settings-scope">firmenweit · nur Administratoren</span></h3>
|
||||
<p class="hint">Bekommt jemand eine Aufgabe zugewiesen, erscheint in einem Teams-Kanal eine
|
||||
Nachricht mit Link direkt auf die Aufgabe im Projekt.</p>
|
||||
<div id="adminTeamsInhalt"></div>
|
||||
<details class="kalender-anleitung">
|
||||
<summary>So richten Sie die Adresse in Teams ein</summary>
|
||||
<ol>
|
||||
<li>In Teams den gewünschten Kanal öffnen, oben bei den drei Punkten
|
||||
<i>Workflows</i> wählen.</li>
|
||||
<li>Die Vorlage <i>„Beim Empfang einer Webhook-Anfrage in einem Kanal posten“</i>
|
||||
auswählen, einen Namen vergeben (z. B. „Projektübersicht“) und bestätigen.</li>
|
||||
<li>Teams zeigt am Ende eine lange Adresse (beginnt mit https://). Diese kopieren,
|
||||
hier einfügen und speichern.</li>
|
||||
<li>„Testnachricht senden“ — im Kanal sollte eine Karte erscheinen.</li>
|
||||
</ol>
|
||||
<p class="hint">Der Server braucht dafür Internetzugang nach außen. Der Link in der
|
||||
Nachricht führt auf die Adresse, unter der die App im Büro aufgerufen wird — er
|
||||
funktioniert also nur im Büronetz (bzw. per VPN).</p>
|
||||
</details>
|
||||
</section>
|
||||
<section class="settings-card" id="adminBetriebCard" data-admin-section="betrieb" style="display:none">
|
||||
<h3 class="settings-card-title">Betrieb & Sicherheit <span class="settings-scope">firmenweit · nur Administratoren</span></h3>
|
||||
<div class="settings-field-grid">
|
||||
@@ -1522,6 +1555,11 @@
|
||||
<h3>Hängt ab von</h3>
|
||||
<div id="milestoneEditDependsOn" class="todo-depends-list pd-liste"></div>
|
||||
</section>
|
||||
<section class="pd-abs">
|
||||
<h3>Notiz</h3>
|
||||
<p class="hint pd-hint pd-mail-hinweis" id="milestoneEditMailHinweis" hidden></p>
|
||||
<textarea id="milestoneEditNotiz" class="pd-notiz" rows="4" placeholder="Optional, z. B. Hintergrund oder die Mail, aus der der Meilenstein stammt" aria-label="Notiz"></textarea>
|
||||
</section>
|
||||
</div>
|
||||
<div class="pd-fuss">
|
||||
<button type="button" class="pd-loeschen" id="milestoneEditDelete" onclick="deleteMilestoneEdit()">Löschen</button>
|
||||
@@ -1912,21 +1950,21 @@
|
||||
</main>
|
||||
</div>
|
||||
|
||||
<script src="/js/globals.js?v=8"></script>
|
||||
<script src="/js/utils.js?v=30"></script>
|
||||
<script src="/js/globals.js?v=9"></script>
|
||||
<script src="/js/utils.js?v=31"></script>
|
||||
<script src="/js/icons.js?v=2"></script>
|
||||
<script src="/js/ui.js?v=9"></script>
|
||||
<script src="/js/date-picker.js?v=5"></script>
|
||||
<script src="/js/date-picker.js?v=6"></script>
|
||||
<script src="/js/server.js?v=7"></script>
|
||||
<script src="/js/auth.js?v=10"></script>
|
||||
<script src="/js/store.js?v=14"></script>
|
||||
<script src="/js/weeks.js?v=11"></script>
|
||||
<script src="/js/auth.js?v=11"></script>
|
||||
<script src="/js/store.js?v=15"></script>
|
||||
<script src="/js/weeks.js?v=12"></script>
|
||||
<script src="/js/board/board.js?v=41"></script>
|
||||
<script src="/js/wochenbericht/wochenbericht.js?v=28"></script>
|
||||
<script src="/js/wochenbericht/wochenbericht.js?v=29"></script>
|
||||
<script src="/js/people/people.js?v=8"></script>
|
||||
<script src="/js/planung/planung.js?v=3"></script>
|
||||
<script src="/js/planchecker/planchecker.js?v=1"></script>
|
||||
<script src="/js/abwesenheit/abwesenheit.js?v=9"></script>
|
||||
<script src="/js/abwesenheit/abwesenheit.js?v=10"></script>
|
||||
<script src="/js/projects/projects.js?v=10"></script>
|
||||
<script src="/js/load/load.js?v=23"></script>
|
||||
<!-- auftrag.js: Auftragsstatus und Dialog "Beauftragung". Nach load.js, weil
|
||||
@@ -1944,8 +1982,8 @@
|
||||
bereits vorher, die Reihenfolge hier ist also nur Zuordnung zum
|
||||
Tab-Ordner, keine neue Abhängigkeit nach vorn. -->
|
||||
<script src="/js/wand/wand.js?v=21"></script>
|
||||
<script src="/js/settings/settings.js?v=12"></script>
|
||||
<script src="/js/admin/admin.js?v=19"></script>
|
||||
<script src="/js/settings/settings.js?v=14"></script>
|
||||
<script src="/js/admin/admin.js?v=21"></script>
|
||||
<script src="/js/admin-users.js?v=10"></script>
|
||||
<script src="/js/admin/rollen.js?v=1"></script>
|
||||
<script src="/js/einfuehrung.js?v=2"></script>
|
||||
@@ -1957,21 +1995,21 @@
|
||||
(das seine Vorwochen-Helfer nutzt), und alle zusammen muessen nach
|
||||
js/gantt.js kommen, dessen buildGanttHtml() plan-build-gantt.js
|
||||
umhuellt. -->
|
||||
<script src="/js/plan/plan-state.js?v=21"></script>
|
||||
<script src="/js/plan/plan-state.js?v=24"></script>
|
||||
<script src="/js/plan/plan-sections.js?v=10"></script>
|
||||
<script src="/js/plan/plan-info.js?v=14"></script>
|
||||
<script src="/js/plan/plan-info.js?v=15"></script>
|
||||
<script src="/js/plan/plan-history.js?v=4"></script>
|
||||
<script src="/js/plan/plan-build-gantt.js?v=11"></script>
|
||||
<script src="/js/plan/plan-gantt.js?v=21"></script>
|
||||
<script src="/js/plan/plan-drag.js?v=8"></script>
|
||||
<script src="/js/plan/plan-modals.js?v=14"></script>
|
||||
<script src="/js/plan/plan-modals.js?v=15"></script>
|
||||
<script src="/js/plan/plan-tasks.js?v=4"></script>
|
||||
<script src="/js/plan/plan-phasen.js?v=2"></script>
|
||||
<script src="/js/plan/plan-files.js?v=4"></script>
|
||||
<script src="/js/plan/plan-protokoll.js?v=20"></script>
|
||||
<script src="/js/plan/plan-templates.js?v=11"></script>
|
||||
<script src="/js/plan/plan-protokoll-todos.js?v=2"></script>
|
||||
<script src="/js/plan/plan-mail-eintrag.js?v=1"></script>
|
||||
<script src="/js/plan/plan-mail-eintrag.js?v=4"></script>
|
||||
<script src="/js/plan/plan-honorar.js?v=9"></script>
|
||||
<!-- plan-leistung.js muss NACH plan-honorar.js stehen: es umhuellt dessen
|
||||
invalidateHonorarConfig(), damit eine Aenderung der Anteile auch seinen
|
||||
|
||||
Reference in new issue
Block a user