Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e697057b86 |
No files matched your search
+1
-1
@@ -2002,7 +2002,7 @@
|
|||||||
<!-- Assistent "Neues Projekt": braucht auftrag.js (Auftragsstatus) und
|
<!-- Assistent "Neues Projekt": braucht auftrag.js (Auftragsstatus) und
|
||||||
load.js (faktorFormat), steht deshalb dahinter. -->
|
load.js (faktorFormat), steht deshalb dahinter. -->
|
||||||
<script src="/js/projekt-wizard.js?v=6"></script>
|
<script src="/js/projekt-wizard.js?v=6"></script>
|
||||||
<script src="/js/dashboard/dashboard.js?v=10"></script>
|
<script src="/js/dashboard/dashboard.js?v=11"></script>
|
||||||
<script src="/js/benachrichtigungen.js?v=5"></script>
|
<script src="/js/benachrichtigungen.js?v=5"></script>
|
||||||
<!-- wand.js braucht berechneAuslastung()/loadAmpelColor()/kapazitaetsFaktor()/
|
<!-- wand.js braucht berechneAuslastung()/loadAmpelColor()/kapazitaetsFaktor()/
|
||||||
stundenFormat() (load.js), classifyProjectChange()/findPreviousWeek()
|
stundenFormat() (load.js), classifyProjectChange()/findPreviousWeek()
|
||||||
|
|||||||
@@ -253,6 +253,23 @@ function dashProjektUrl(p, abschnitt){
|
|||||||
return url.toString();
|
return url.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// dashImTabOeffnen: öffnet den Projektbereich im SELBEN Tab (Eriks Wunsch),
|
||||||
|
// ohne die Seite neu zu laden. Strg/Cmd/Umschalt-Klick und Mittelklick
|
||||||
|
// behalten das Browser-Verhalten (neuer Tab), dafür bleibt das href stehen.
|
||||||
|
// Der Abschnitt (#aufgaben …) wird wie in springZuEinstellungen() VOR
|
||||||
|
// showTab('plan') gesetzt, dessen updateRouteUrl() ihn übernimmt.
|
||||||
|
function dashImTabOeffnen(ev, a){
|
||||||
|
if(ev.button !== 0 || ev.ctrlKey || ev.metaKey || ev.shiftKey || ev.altKey) return true;
|
||||||
|
ev.preventDefault();
|
||||||
|
const url = new URL(a.href);
|
||||||
|
const name = decodeURIComponent(url.pathname.split('/').pop() || '');
|
||||||
|
setPlanTarget(url.searchParams.get('weekLabel') || '', url.searchParams.get('projNr') || '', name);
|
||||||
|
location.hash = url.hash.slice(1) || 'dashboard';
|
||||||
|
showTab('plan');
|
||||||
|
window.scrollTo(0, 0);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
// DASH_TERMINE_JE_PROJEKT: so viele Termine stehen je Projekt offen da,
|
// DASH_TERMINE_JE_PROJEKT: so viele Termine stehen je Projekt offen da,
|
||||||
// Überfälliges zuerst. Der Rest steckt hinter "weitere Termine" — sonst
|
// Überfälliges zuerst. Der Rest steckt hinter "weitere Termine" — sonst
|
||||||
// verdrängt ein Projekt mit 25 gerissenen Fristen alle anderen aus dem Blick
|
// verdrängt ein Projekt mit 25 gerissenen Fristen alle anderen aus dem Blick
|
||||||
@@ -441,7 +458,7 @@ function renderDashProjekte(daten){
|
|||||||
? sichtbar.map(t => renderDashTermin(p, t)).join('')
|
? sichtbar.map(t => renderDashTermin(p, t)).join('')
|
||||||
: '<div class="dash-leer">Keine offenen Termine.</div>';
|
: '<div class="dash-leer">Keine offenen Termine.</div>';
|
||||||
const mehr = rest > 0
|
const mehr = rest > 0
|
||||||
? '<a class="dash-proj-mehr" href="' + dashProjektUrl(p, 'aufgaben') + '" target="_blank" rel="noopener">' + rest + ' weitere Termine im Projekt</a>'
|
? '<a class="dash-proj-mehr" href="' + dashProjektUrl(p, 'aufgaben') + '" onclick="return dashImTabOeffnen(event, this)">' + rest + ' weitere Termine im Projekt</a>'
|
||||||
: '';
|
: '';
|
||||||
// Eingeklappt bleibt sichtbar, was Aufmerksamkeit braucht: wie viele
|
// Eingeklappt bleibt sichtbar, was Aufmerksamkeit braucht: wie viele
|
||||||
// Termine überfällig bzw. offen sind.
|
// Termine überfällig bzw. offen sind.
|
||||||
@@ -456,7 +473,7 @@ function renderDashProjekte(daten){
|
|||||||
+ '</button>'
|
+ '</button>'
|
||||||
+ '<span class="dash-proj-kurz">' + kurz + '</span>'
|
+ '<span class="dash-proj-kurz">' + kurz + '</span>'
|
||||||
+ '<span class="dash-rollen">' + rollen + '</span>'
|
+ '<span class="dash-rollen">' + rollen + '</span>'
|
||||||
+ '<a class="dash-proj-oeffnen" href="' + dashProjektUrl(p, 'dashboard') + '" target="_blank" rel="noopener" title="Projekt öffnen">Öffnen</a>'
|
+ '<a class="dash-proj-oeffnen" href="' + dashProjektUrl(p, 'dashboard') + '" onclick="return dashImTabOeffnen(event, this)" title="Projekt öffnen">Öffnen</a>'
|
||||||
+ '</div>'
|
+ '</div>'
|
||||||
+ '<div class="dash-proj-inhalt">'
|
+ '<div class="dash-proj-inhalt">'
|
||||||
+ '<div class="dash-proj-sub">' + phase + '</div>'
|
+ '<div class="dash-proj-sub">' + phase + '</div>'
|
||||||
@@ -480,7 +497,7 @@ function renderDashTermin(p, t, mitProjekt){
|
|||||||
const unter = mitProjekt
|
const unter = mitProjekt
|
||||||
? (p.nr ? p.nr + ' ' : '') + (p.name || '')
|
? (p.nr ? p.nr + ' ' : '') + (p.name || '')
|
||||||
: (t.art === 'meilenstein' ? 'Meilenstein' : (t.meins ? 'meine Aufgabe' : (t.wer.length ? t.wer.join(', ') : 'niemand zugewiesen')));
|
: (t.art === 'meilenstein' ? 'Meilenstein' : (t.meins ? 'meine Aufgabe' : (t.wer.length ? t.wer.join(', ') : 'niemand zugewiesen')));
|
||||||
return '<a class="dash-termin" href="' + dashProjektUrl(p, t.art === 'meilenstein' ? 'terminplan' : 'aufgaben') + '" target="_blank" rel="noopener">'
|
return '<a class="dash-termin" href="' + dashProjektUrl(p, t.art === 'meilenstein' ? 'terminplan' : 'aufgaben') + '" onclick="return dashImTabOeffnen(event, this)">'
|
||||||
+ '<span class="dash-termin-art ' + klasse + '">' + zeichen + '</span>'
|
+ '<span class="dash-termin-art ' + klasse + '">' + zeichen + '</span>'
|
||||||
+ '<span class="dash-termin-text"><span class="dash-termin-titel">' + esc(t.titel) + '</span>'
|
+ '<span class="dash-termin-text"><span class="dash-termin-titel">' + esc(t.titel) + '</span>'
|
||||||
+ '<span class="dash-termin-meta">' + esc(unter) + '</span></span>'
|
+ '<span class="dash-termin-meta">' + esc(unter) + '</span></span>'
|
||||||
|
|||||||
Reference in new issue
Block a user