Hallo zusammen,
ich nehme das Thema "Speichern der Filter" zur Diskussion mit in den nächsten Termin mit meinen Kollegen und melde dich danach dazu nochmal.
Viele Grüße
Stefanie Herold
Prima liebe DATEV!
Ihr habt wirklich gut bei Microsoft gelernt. Was früher auf einen Blick sichtbar war, ist jetzt schon mit 4 Klicks mehr zu sehen!
Super gemacht 🙂 Vielen Dank!
@Stefanie_Herold schrieb:Hallo zusammen,
ich nehme das Thema "Speichern der Filter" zur Diskussion mit in den nächsten Termin mit meinen Kollegen und melde dich danach dazu nochmal.
Viele Grüße
Stefanie Herold
Das hatte ich in meinem Beitrag Nr. 12 schon bemängelt. Aber schön, dass jetzt mal darauf reagiert wird...
Ein Finger- Tap auf eine der Kategorien sollte sofort eine Liste aller betroffenen Punkte auslösen und diese in einer Liste darstellen.
Entweder sind es nur wenige Punkte, und damit bleibt alles übersichtlich ... oder...
Beim Komplett- Ausfall des RZ darf die Liste gerne auch 100 Posten enthalten.
Mal ne Frage,
Muss das so aussehen:
Sieht bei mir aktuell so aus:
@AKW schrieb:Mal ne Frage,
Muss das so aussehen:
Klar 😂 Ist unser neues Award-ausgezeichnetes Design 🧁
Spaß beiseite, natürlich nicht!
Da spucken sehr wahrscheinlich noch irgendwelche alten Browserdaten auf Ihrem System rein.
Viele Grüße
Stefanie Herold
Einmal die Seite neuladen, Cache leeren oder im private Tab öffnen. Das Design hat sich auch in der Web-Ansicht angepasst - leider auch hier zum negativen.
Auch hier sehe ich erst nach mehreren Klicks, welche Anwendung gerade nicht zur Verfügung steht.
Mein aktuell sich verstärkender Eindruck:
DATEV möchte nahezu verstecken, welche Anwendungen gerade nicht laufen bzw. möchte den Fokus darauf legen, wie viele Anwendungen gerade korrekt laufen, damit mögliche Störungen immer im Verhältnis betrachtet werden.
Das kann ich aus PR-Sicht auch nachvollziehen, aber noch einmal ganz deutlich aus Anwendersicht:
ICH MÖCHTE SOFORT UND AUF EINEN BLICK SEHEN, WELCHE ANWENDUNGEN NICHT VERFÜGBAR SIND. OHNE WEITERE KLICKS ODER FILTER.
@pascal_duennebacke schrieb:ICH MÖCHTE SOFORT UND AUF EINEN BLICK SEHEN, WELCHE ANWENDUNGEN NICHT VERFÜGBAR SIND. OHNE WEITERE KLICKS ODER FILTER.
Wie Sie und ich ja bereits geschrieben haben: würde ein einmalig gesetzter Filter gespeichert werden, würde allen geholfen werden.
Ergänzung: Aber wahrscheinlich ist das Setzen (und speichern) eines Filters in genau so sorgfältiger (und langsamer) Prüfung wie der Bug bei der Größe der Auftragswesen Next PDF-Datei...
Kann ich nur unterstreichen!
Ich möchte die Störungen auf einen Blick sehen - und da helfen auch die Filter nicht. Sorry!
Frage in die Runde:
Wer hat beim Versuch, weitere Infos zu den aktuellen Störungen zu bekommen schon mehrfach diesen Button gedrückt, um dann zur Hilfeseite der App zu gelangen, anstatt Details zu den Störungen zu erfahren?
@m_brunzendorf schrieb:
[...]
Von "Schöndruck" finde ich da leider nichts. Ich habe aber einfach mal draufgeklickt und ein "klein wenig" ist zutreffend, aber nicht wirklich was, was man sich -meiner Meinung nach- antuen möchte.
[...]
... wenn der Begriff "Schöndruck" nicht so ganz die Erwartungen erfüllt, kann man den Link (https://api.datev-status.de/v1/incidents?lastDays=3) in "Google Chrome" öffnen.
Dort lässt sich dann das Kästchen "Quelltextformatierung" anhaken, ... was dann vielleicht eher die Erwartungen dämpft 😉
Der Begriff "Schönheit" liegt eben im Auge des Betrachters 😉
Gebt doch einfach mal folgenden Prompt in eure KI:
Erstelle mir eine HTML-Seite, die die Ergebnisse von https://api.datev-status.de/v1/incidents übersichtlich darstellt.
Ich habe da sogar eine Seite, die das Ergebnis alle 60 sek.refresht.
Das scheint auch mit dem DATEV Copilot zu funktionieren.
... gute Idee ... 👍
ChatGPT hat zwar eine html-Datei erstellt, aber mein Auge betrachtet das Ergebnis immer noch nicht als "schön" 😉
So sieht das bei mir aus. Allerdings ist in meinen persönlichen Einstellungen hinterlegt, dass er als Entwickler agieren soll.
Eventuell dem Prompt noch mehr Infos mitgeben.
Und hier den HTML Code dazu ...
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8" />
<meta name([api.datev-status.de](https://api.datev-status.de/v1/incidents))tent="width=device-width, initial-scale=1.0" />
<title>DATEV Status – Incidents</title>
<style>
:root {
--bg: #f6f8fb;
--panel: #ffffff;
--text: #1f2937;
--muted: #6b7280;
--border: #e5e7eb;
--limited: #f59e0b;
--major: #ef4444;
--minor: #3b82f6;
--operational: #10b981;
--unknown: #6b7280;
--shadow: 0 10px 30px rgba(0,0,0,0.06);
--radius: 16px;
}
* { box-sizing: border-box; }
body {
margin: 0;
font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
background: linear-gradient(180deg, #f8fafc 0%, #eef2ff 100%);
color: var(--text);
}
.container {
max-width: 1200px;
margin: 0 auto;
padding: 24px;
}
.header {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
align-items: center;
gap: 16px;
margin-bottom: 24px;
}
.title h1 {
margin: 0;
font-size: 2rem;
line-height: 1.1;
}
.title p {
margin: 8px 0 0;
color: var(--muted);
}
.controls {
display: flex;
flex-wrap: wrap;
gap: 12px;
align-items: center;
}
.control, button {
border: 1px solid var(--border);
background: var(--panel);
color: var(--text);
border-radius: 12px;
padding: 10px 14px;
font-size: 0.95rem;
box-shadow: var(--shadow);
}
button {
cursor: pointer;
transition: transform 0.15s ease, opacity 0.15s ease;
}
button:hover { transform: translateY(-1px); }
button:disabled { opacity: 0.7; cursor: wait; }
.summary {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
gap: 16px;
margin-bottom: 24px;
}
.card {
background: var(--panel);
border: 1px solid var(--border);
border-radius: var(--radius);
padding: 18px;
box-shadow: var(--shadow);
}
.metric-label {
color: var(--muted);
font-size: 0.9rem;
margin-bottom: 8px;
}
.metric-value {
font-size: 1.8rem;
font-weight: 700;
}
.toolbar {
display: flex;
flex-wrap: wrap;
gap: 12px;
margin-bottom: 20px;
align-items: center;
}
.toolbar input, .toolbar select {
flex: 1 1 220px;
min-width: 180px;
border: 1px solid var(--border);
border-radius: 12px;
padding: 12px 14px;
font-size: 0.95rem;
background: var(--panel);
box-shadow: var(--shadow);
}
.list {
display: grid;
gap: 16px;
}
.incident {
background: var(--panel);
border: 1px solid var(--border);
border-radius: var(--radius);
padding: 20px;
box-shadow: var(--shadow);
}
.incident-header {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
gap: 12px;
margin-bottom: 12px;
}
.incident-title {
font-size: 1.1rem;
font-weight: 700;
margin: 0;
}
.badges {
display: flex;
flex-wrap: wrap;
gap: 8px;
}
.badge {
display: inline-flex;
align-items: center;
gap: 6px;
border-radius: 999px;
padding: 6px 10px;
font-size: 0.82rem;
font-weight: 700;
color: white;
}
.LIMITED { background: var(--limited); }
.MAJOR { background: var(--major); }
.MINOR { background: var(--minor); }
.OPERATIONAL { background: var(--operational); }
.UNKNOWN { background: var(--unknown); }
.grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
gap: 12px;
margin-top: 14px;
}
.field {
background: #f9fafb;
border: 1px solid var(--border);
border-radius: 12px;
padding: 12px;
}
.field-label {
color: var(--muted);
font-size: 0.82rem;
margin-bottom: 6px;
}
.field-value {
font-size: 0.95rem;
word-break: break-word;
}
.external-info {
margin-top: 14px;
padding: 14px;
border-left: 4px solid var(--limited);
background: #fffaf0;
border-radius: 12px;
}
.statusline {
color: var(--muted);
font-size: 0.9rem;
margin-bottom: 16px;
}
.empty, .error {
text-align: center;
padding: 32px;
background: var(--panel);
border: 1px solid var(--border);
border-radius: var(--radius);
box-shadow: var(--shadow);
}
.error {
border-color: #fecaca;
background: #fef2f2;
color: #991b1b;
}
.muted { color: var(--muted); }
@media (max-width: 640px) {
.container { padding: 16px; }
.title h1 { font-size: 1.5rem; }
.metric-value { font-size: 1.5rem; }
}
</style>
</head>
<body>
<div class="container">
<div class="header">
<div class="title">
<h1>DATEV Status – Incidents</h1>
<p>Übersicht der aktuellen Störungen und Einschränkungen aus der DATEV-Status-API</p>
</div>
<div class="controls">
<label class="control">
Auto-Refresh
<select id="refreshInterval" style="border:none; outline:none; background:transparent; margin-left:8px;">
<option value="0">aus</option>
<option value="30000">30 Sek.</option>
<option value="60000" selected>60 Sek.</option>
<option value="300000">5 Min.</option>
</select>
</label>
<button id="reloadBtn">Neu laden</button>
</div>
</div>
<div class="summary" id="summary"></div>
<div class="toolbar">
<input id="searchInput" type="text" placeholder="Nach Service, Status oder Hinweis suchen..." />
<select id="stateFilter">
<option value="ALL">Alle Stati</option>
<option value="LIMITED">LIMITED</option>
<option value="MAJOR">MAJOR</option>
<option value="MINOR">MINOR</option>
<option value="OPERATIONAL">OPERATIONAL</option>
</select>
<select id="sortBy">
<option value="startDesc">Startdatum ↓</option>
<option value="startAsc">Startdatum ↑</option>
<option value="serviceAsc">Service A–Z</option>
<option value="serviceDesc">Service Z–A</option>
<option value="createdDesc">Erstellt ↓</option>
</select>
</div>
<div class="statusline" id="statusLine">Lade Daten…</div>
<div id="content"></div>
</div>
<script>
const API_URL = 'https://api.datev-status.de/v1/incidents';
let incidents = [];
let timerId = null;
const summaryEl = document.getElementById('summary');
const contentEl = document.getElementById('content');
const statusLineEl = document.getElementById('statusLine');
const searchInputEl = document.getElementById('searchInput');
const stateFilterEl = document.getElementById('stateFilter');
const sortByEl = document.getElementById('sortBy');
const refreshIntervalEl = document.getElementById('refreshInterval');
const reloadBtnEl = document.getElementById('reloadBtn');
function formatDate(value) {
if (!value) return '—';
const date = new Date(value);
if (Number.isNaN(date.getTime())) return value;
return new Intl.DateTimeFormat('de-DE', {
dateStyle: 'medium',
timeStyle: 'short'
}).format(date);
}
function escapeHtml(value) {
return String(value ?? '')
.replace(/&/g, '&')
.replace(/</g, '<')
.replace(/>/g, '>')
.replace(/"/g, '"')
.replace(/'/g, ''');
}
function getSeverityOrder(state) {
const order = { MAJOR: 4, LIMITED: 3, MINOR: 2, OPERATIONAL: 1 };
return order[state] ?? 0;
}
function renderSummary(items) {
const byState = items.reduce((acc, item) => {
const state = item.currentState || 'UNKNOWN';
acc[state] = (acc[state] || 0) + 1;
return acc;
}, {});
const highestSeverity = items
.map(x => x.currentState || 'UNKNOWN')
.sort((a, b) => getSeverityOrder(b) - getSeverityOrder(a))[0] || '—';
const metrics = [
{ label: 'Incidents gesamt', value: items.length },
{ label: 'Höchster Status', value: highestSeverity },
{ label: 'LIMITED', value: byState.LIMITED || 0 },
{ label: 'MAJOR', value: byState.MAJOR || 0 }
];
summaryEl.innerHTML = metrics.map(metric => `
<div class="card">
<div class="metric-label">${escapeHtml(metric.label)}</div>
<div class="metric-value">${escapeHtml(metric.value)}</div>
</div>
`).join('');
}
function applyFilters(items) {
const search = searchInputEl.value.trim().toLowerCase();
const stateFilter = stateFilterEl.value;
const sortBy = sortByEl.value;
let result = [...items];
if (stateFilter !== 'ALL') {
result = result.filter(item => (item.currentState || 'UNKNOWN') === stateFilter);
}
if (search) {
result = result.filter(item => {
const haystack = [
item.serviceInfoDto?.name,
item.currentState,
item.worstState,
item.externalInfo,
item.id
].join(' ').toLowerCase();
return haystack.includes(search);
});
}
result.sort((a, b) => {
switch (sortBy) {
case 'startAsc':
return new Date(a.startDate) - new Date(b.startDate);
case 'serviceAsc':
return (a.serviceInfoDto?.name || '').localeCompare(b.serviceInfoDto?.name || '', 'de');
case 'serviceDesc':
return (b.serviceInfoDto?.name || '').localeCompare(a.serviceInfoDto?.name || '', 'de');
case 'createdDesc':
return new Date(b.createdAt) - new Date(a.createdAt);
case 'startDesc':
default:
return new Date(b.startDate) - new Date(a.startDate);
}
});
return result;
}
function renderIncidents(items) {
if (!items.length) {
contentEl.innerHTML = '<div class="empty">Keine passenden Incidents gefunden 🎉</div>';
return;
}
contentEl.innerHTML = `
<div class="list">
${items.map(item => {
const state = item.currentState || 'UNKNOWN';
const worstState = item.worstState || 'UNKNOWN';
const serviceName = item.serviceInfoDto?.name || 'Unbekannter Service';
const productCount = item.serviceInfoDto?.productIris?.length || 0;
return `
<article class="incident">
<div class="incident-header">
<div>
<h2 class="incident-title">${escapeHtml(serviceName)}</h2>
<div class="muted">Incident-ID: ${escapeHtml(item.id)}</div>
</div>
<div class="badges">
<span class="badge ${escapeHtml(state)}">Aktuell: ${escapeHtml(state)}</span>
<span class="badge ${escapeHtml(worstState)}">Schlimmster Status: ${escapeHtml(worstState)}</span>
</div>
</div>
<div class="grid">
<div class="field">
<div class="field-label">Start</div>
<div class="field-value">${escapeHtml(formatDate(item.startDate))}</div>
</div>
<div class="field">
<div class="field-label">Ende</div>
<div class="field-value">${escapeHtml(formatDate(item.endDate))}</div>
</div>
<div class="field">
<div class="field-label">Erstellt</div>
<div class="field-value">${escapeHtml(formatDate(item.createdAt))}</div>
</div>
<div class="field">
<div class="field-label">Produkte</div>
<div class="field-value">${escapeHtml(productCount)}</div>
</div>
</div>
${item.externalInfo ? `
<div class="external-info">
<strong>Hinweis:</strong><br />
${escapeHtml(item.externalInfo)}
</div>
` : ''}
</article>
`;
}).join('')}
</div>
`;
}
function render() {
const filtered = applyFilters(incidents);
renderSummary(incidents);
renderIncidents(filtered);
statusLineEl.textContent = `${filtered.length} von ${incidents.length} Incident(s) sichtbar · Letzte Aktualisierung: ${formatDate(new Date().toISOString())}`;
}
async function loadIncidents() {
reloadBtnEl.disabled = true;
statusLineEl.textContent = 'Lade Daten…';
try {
const response = await fetch(API_URL, {
headers: {
'Accept': 'application/json'
}
});
if (!response.ok) {
throw new Error(`HTTP ${response.status} – ${response.statusText}`);
}
const data = await response.json();
if (!Array.isArray(data)) {
throw new Error('Unerwartetes API-Format: Es wurde kein Array zurückgegeben.');
}
incidents = data;
render();
} catch (error) {
console.error(error);
summaryEl.innerHTML = '';
contentEl.innerHTML = `
<div class="error">
<strong>Fehler beim Laden der DATEV-Statusdaten</strong><br /><br />
${escapeHtml(error.message)}<br /><br />
Prüfe ggf. CORS, Netzwerkzugriff oder einen vorgeschalteten Proxy.
</div>
`;
statusLineEl.textContent = 'Laden fehlgeschlagen';
} finally {
reloadBtnEl.disabled = false;
}
}
function updateAutoRefresh() {
const interval = Number(refreshIntervalEl.value);
if (timerId) {
clearInterval(timerId);
timerId = null;
}
if (interval > 0) {
timerId = setInterval(loadIncidents, interval);
}
}
searchInputEl.addEventListener('input', render);
stateFilterEl.addEventListener('change', render);
sortByEl.addEventListener('change', render);
refreshIntervalEl.addEventListener('change', updateAutoRefresh);
reloadBtnEl.addEventListener('click', loadIncidents);
updateAutoRefresh();
loadIncidents();
</script>
</body>
</html>
@vogtsburger schrieb:
@m_brunzendorf schrieb:
[...]
Von "Schöndruck" finde ich da leider nichts. Ich habe aber einfach mal draufgeklickt und ein "klein wenig" ist zutreffend, aber nicht wirklich was, was man sich -meiner Meinung nach- antuen möchte.
[...]... wenn der Begriff "Schöndruck" nicht so ganz die Erwartungen erfüllt, kann man den Link (https://api.datev-status.de/v1/incidents?lastDays=3) in "Google Chrome" öffnen.
Dort lässt sich dann das Kästchen "Quelltextformatierung" anhaken, ... was dann vielleicht eher die Erwartungen dämpft 😉
Der Begriff "Schönheit" liegt eben im Auge des Betrachters 😉
Ich bitte um Entschuldigung, dass ich es in dem Beitrag nicht genau geschrieben hatte. Ich habe den Link bereits im Chrome geöffnet und auf meinem Bild konnte man die "Schönheit" bereits betrachten.
Moin,
ich beobachte das hier sehr aufmerksam und stelle fest:
1. es kann doch nicht die Aufgabe von uns Anwendern sein, die Ansicht "schön" zu programmieren!
2. DATEV sollte das alte Design wieder aktivieren. Es ist mal wieder "drüber", wie so oft bei DATEV. Gut gemeint, aber nicht brauchbar. Ich möchte jetzt nicht mit den Anwenderrechten beginnen oder den neuen Lizenzen ...
Aber die große Masse scheint die neue Ansicht ja toll zu finden oder erträgt diese stillschweigend.
Eine schöne Woche!
@CHessel schrieb:
Aber die große Masse scheint die neue Ansicht ja toll zu finden oder erträgt diese stillschweigend.
Naja, was soll man sich darüber "aufregen"? Man weiß ja, dass es eh nichts mehr ändert. Ich fand die alte Seite auch besser. Was interessieren mich auf einer Störungsseite die Anwendungen, die keine Störung haben? Außerdem muss man jetzt jedes Mal auf die Störung klicken um die erweiterte Fehlerbeschreibung zu erhalten. Diese wurde früher sofort mit angezeigt.
Gruß
Matthias
@Stefanie_Herold schrieb:Hallo zusammen,
ich nehme das Thema "Speichern der Filter" zur Diskussion mit in den nächsten Termin mit meinen Kollegen und melde dich danach dazu nochmal.
Viele Grüße
Stefanie Herold
Hallo zusammen,
wir prüfen das Thema "Speichen der Filter" noch mal 👍
Viele Grüße
Stefanie Herold
Wer die Browser-Erweiterung Tampermonkey nutzt, kann alternativ auch ff. Userscript hinzufügen. Dann wird beim Aufruf von https://www.datev-status.de automatisch die Checkbox "Verfügbar" deaktiviert und der Button "Alle aufklappen" geklickt:
// ==UserScript==
// @name DATEV Status Filter
// @namespace http://tampermonkey.net/
// @version 1.0
// @description Deaktiviert "Verfügbar" Checkbox und klappt alle Gruppen auf der DATEV-Statusseite auf.
// @match https://www.datev-status.de/
// @icon https://www.google.com/s2/favicons?sz=64&domain=datev-status.de
// @grant none
// ==/UserScript==
(function() {
'use strict';
// Funktion, die die Klicks ausführt
const filterValues = () => {
// 1. Checkbox "Verfügbar" finden und deaktivieren
const checkbox = document.querySelector('input[type="checkbox"]#\\30');
if (checkbox && checkbox.checked) {
checkbox.click();
console.log("DATEV-Script: 'Verfügbar' wurde deaktiviert.");
}
// 2. Button "Alle aufklappen" finden und klicken
const buttons = Array.from(document.querySelectorAll('button'));
const expandButton = buttons.find(btn => btn.textContent.includes('Alle aufklappen'));
if (expandButton) {
expandButton.click();
console.log("DATEV-Script: 'Alle aufklappen' wurde geklickt.");
}
};
// Da die Seite Inhalte dynamisch nachlädt, warten wir kurz, bis die Elemente da sind
const observer = new MutationObserver((mutations, obs) => {
const target = document.querySelector('input[type="checkbox"]#\\30');
if (target) {
filterValues();
obs.disconnect(); // Stoppen, sobald erledigt
}
});
observer.observe(document.body, {
childList: true,
subtree: true
});
// Sicherheitshalber ein Timeout nach x Millisekunden, falls der Observer nicht greift
setTimeout(filterValues, 1000);
})();(powered by Gemini)
Baut den💩 einfach wieder aus und gut ists!
@Stefanie_Herold schrieb:
@Stefanie_Herold schrieb:Hallo zusammen,
ich nehme das Thema "Speichern der Filter" zur Diskussion mit in den nächsten Termin mit meinen Kollegen und melde dich danach dazu nochmal.
Viele Grüße
Stefanie Herold
Hallo zusammen,
wir prüfen das Thema "Speichen der Filter" noch mal 👍
Viele Grüße
Stefanie Herold
Sorry. 1 Kudo gibt es dafür erst, wenn das umgesetzt ist - wenn überhaupt. Denn für mich (vielleicht bin ich zu kleinlich...) gehört das fest dazu: Wenn man Filter anbietet, gehören die auch zwingend gespeichert!
Und wenn man von alt: "Ich zeige euch, was gerade nicht geht" auf neu: "Ich zeige euch, was alles tolles geht" umstellt, gehört ein Filter sowieso dazu.
Herzlichen Dank! Das funktioniert super. 👍
Ist der Code frei für die interne Verwendung in der Kanzlei? Könnte ich mir gut im Intranet vorstellen.
Gruß aus Hamburg
Hallo @zippo ,
das habe ich hier zur freien Verwendung gepostet. Wie bereits erwähnt, habe ich das von der KI erstellen lassen.
Man kann sich das von der KI dann auch noch auf seine eigenen Bedürfnisse und sein eigenes Layout umstellen lassen. Einfach den Code in den Prompt kopieren und weitere Anforderungen mitteilen.
VG Sven Ehlers
@m_brunzendorf schrieb:
@Stefanie_Herold schrieb:
@Stefanie_Herold schrieb:Hallo zusammen,
ich nehme das Thema "Speichern der Filter" zur Diskussion mit in den nächsten Termin mit meinen Kollegen und melde dich danach dazu nochmal.
Viele Grüße
Stefanie Herold
Hallo zusammen,
wir prüfen das Thema "Speichen der Filter" noch mal 👍
Viele Grüße
Stefanie Herold
Hallo Frau @Stefanie_Herold ,
wie weit ist denn bitte die Prüfung des Themas "Speichern der Filter"?
Wäre es außerdem bitte möglich jedem Programmierer der DATEV beizubringen, dass gesetzte Filter immer gespeichert werden?
@m_brunzendorf schrieb:
@m_brunzendorf schrieb:
@Stefanie_Herold schrieb:
@Stefanie_Herold schrieb:Hallo zusammen,
ich nehme das Thema "Speichern der Filter" zur Diskussion mit in den nächsten Termin mit meinen Kollegen und melde dich danach dazu nochmal.
Viele Grüße
Stefanie Herold
Hallo zusammen,
wir prüfen das Thema "Speichen der Filter" noch mal 👍
Viele Grüße
Stefanie Herold
Hallo Frau @Stefanie_Herold ,
wie weit ist denn bitte die Prüfung des Themas "Speichern der Filter"?
Wäre es außerdem bitte möglich jedem Programmierer der DATEV beizubringen, dass gesetzte Filter immer gespeichert werden?
Hallo,
wir werden das Speichern der Filter umsetzen. Ich warte aktuell noch auf Rückmeldung, für wann die Umsetzung eingeplant ist. Auf diese Information hätte ich vor einer Kommunikation gerne noch gewartet 😉
Viele Grüße Stefanie Herold
Wünsche:
- Bei Android kann man aus den Einstellungen heraus einen Benachrichtigungston wählen, der sich z.B. vom dauernden WhatsApp- Ploing unterscheidet.
- Die App startet bei einem Neustart des SC automatisch in den Hintergrund
- Beim Öffnen der App aus dem Mitteilungssystem heraus sieht man auch ohne Brille und mit Handschuhen und Regen mit einem Blick, wo es Probleme gibt.
Gut gelungen. Sehr übersichtlich und optisch ansprechend.
Welchen Teil hat DATEV nicht verstanden?
Ein großer Teil der Community und alle die ich persönlich gefragt habe, mögen die neue Ansicht nicht. Aber Rollback kommt natürlich in Frage, dann ist man gleich "oldschool".
Ignorieren ging bei DATEV aber schon immer gut. Der Webdesigner braucht mit dem Kram auch nicht arbeiten. Ich sehe keinen, aber wirklich keinen Vorteil, warum ich mehr klicken sollte, als vorher. Früher ein Blick: 42 Anwendungen sind ausgefallen seit ... heute 42x klicken seit wann die Anwendungen ausgefallen sind. Super Fortschritt.
Ich wünsche jedem bei DATEV mal einen einzigen Tag als Admin vor Ort in der Kanzlei... ich kann mir nur noch die Haare raufen. Angefangen von den neuen Lizenzen bis zur Rechteverwaltung.