die AG-Übersicht bekommt die gleiche Dropdown-Auswahl wie mobil statt Horizontal-Scroll, und ich räume die Umlaut-Geschichte sauber auf, damit wir wieder normales UTF-8 im Code haben statt dieser ASCII-Ausweichmanöver.
This commit is contained in:
@@ -529,7 +529,7 @@ export function DashboardShell({
|
||||
if (!budgetForm.workingGroupId) {
|
||||
setMessage({
|
||||
type: "error",
|
||||
text: "Bitte zuerst eine AG auswaehlen oder neu anlegen."
|
||||
text: "Bitte zuerst eine AG auswählen oder neu anlegen."
|
||||
});
|
||||
return;
|
||||
}
|
||||
@@ -679,7 +679,7 @@ export function DashboardShell({
|
||||
method: "DELETE"
|
||||
})
|
||||
);
|
||||
}, `Zeitraum ${periodName} wurde geloescht.`);
|
||||
}, `Zeitraum ${periodName} wurde gelöscht.`);
|
||||
}
|
||||
|
||||
async function handleSetCurrentPeriod() {
|
||||
@@ -732,7 +732,7 @@ export function DashboardShell({
|
||||
agId: current.agId === groupId ? nextGroup?.id ?? "" : current.agId,
|
||||
budgetId: current.agId === groupId ? nextGroup?.budgets[0]?.id ?? "" : current.budgetId
|
||||
}));
|
||||
}, `AG ${groupName} wurde geloescht.`);
|
||||
}, `AG ${groupName} wurde gelöscht.`);
|
||||
}
|
||||
|
||||
async function handleCreateUser(event: FormEvent<HTMLFormElement>) {
|
||||
@@ -773,7 +773,7 @@ export function DashboardShell({
|
||||
};
|
||||
},
|
||||
({ createdUsername, createdPassword }) =>
|
||||
`Nutzer wurde angelegt. Startpasswort fuer ${createdUsername}: ${createdPassword}`
|
||||
`Nutzer wurde angelegt. Startpasswort für ${createdUsername}: ${createdPassword}`
|
||||
);
|
||||
}
|
||||
|
||||
@@ -983,7 +983,7 @@ export function DashboardShell({
|
||||
Zeitraum wechseln
|
||||
</Typography>
|
||||
<Typography variant="body2" color="text.secondary">
|
||||
{"Nur Vorstand und Finanz-AG koennen die aktuelle Uebersicht global umstellen."}
|
||||
{"Nur Vorstand und Finanz-AG können die aktuelle Übersicht global umstellen."}
|
||||
</Typography>
|
||||
</Box>
|
||||
<Box
|
||||
@@ -999,7 +999,7 @@ export function DashboardShell({
|
||||
>
|
||||
<TextField
|
||||
select
|
||||
label={"Aktuelle Uebersicht"}
|
||||
label={"Aktuelle Übersicht"}
|
||||
value={selectedCurrentPeriodId}
|
||||
onChange={(event) => setSelectedCurrentPeriodId(event.target.value)}
|
||||
fullWidth
|
||||
@@ -1018,7 +1018,7 @@ export function DashboardShell({
|
||||
onClick={handleSetCurrentPeriod}
|
||||
sx={{ minWidth: 0, minHeight: 56, px: 2 }}
|
||||
>
|
||||
{"Uebersicht setzen"}
|
||||
{"Übersicht setzen"}
|
||||
</Button>
|
||||
<Button
|
||||
type="button"
|
||||
@@ -1031,7 +1031,7 @@ export function DashboardShell({
|
||||
return;
|
||||
}
|
||||
|
||||
if (!window.confirm(`Zeitraum "${selectedPeriodForManagement.name}" wirklich loeschen?`)) {
|
||||
if (!window.confirm(`Zeitraum "${selectedPeriodForManagement.name}" wirklich löschen?`)) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1044,13 +1044,13 @@ export function DashboardShell({
|
||||
whiteSpace: "normal"
|
||||
}}
|
||||
>
|
||||
{"Zeitraum loeschen"}
|
||||
{"Zeitraum löschen"}
|
||||
</Button>
|
||||
</Box>
|
||||
<Typography variant="body2" color="text.secondary">
|
||||
{selectedPeriodForManagement?.isCurrent
|
||||
? "Der aktuell aktive Zeitraum kann nicht geloescht werden."
|
||||
: "Leere, nicht aktive Zeitraeume lassen sich hier wieder entfernen."}
|
||||
? "Der aktuell aktive Zeitraum kann nicht gelöscht werden."
|
||||
: "Leere, nicht aktive Zeiträume lassen sich hier wieder entfernen."}
|
||||
</Typography>
|
||||
|
||||
<Box component="form" onSubmit={handleCreatePeriod} sx={nestedPanelSx}>
|
||||
@@ -1087,7 +1087,7 @@ export function DashboardShell({
|
||||
</Stack>
|
||||
<TextField
|
||||
select
|
||||
label={"Budgets uebernehmen"}
|
||||
label={"Budgets übernehmen"}
|
||||
value={periodForm.copyBudgetsFromPeriodId}
|
||||
onChange={(event) =>
|
||||
setPeriodForm((current) => ({
|
||||
@@ -1096,9 +1096,9 @@ export function DashboardShell({
|
||||
}))
|
||||
}
|
||||
fullWidth
|
||||
helperText={"Optional kopiert die vorhandenen Budgettoepfe direkt in den neuen Zeitraum."}
|
||||
helperText={"Optional kopiert die vorhandenen Budgettöpfe direkt in den neuen Zeitraum."}
|
||||
>
|
||||
<MenuItem value="">Ohne Budgetuebernahme</MenuItem>
|
||||
<MenuItem value="">Ohne Budgetübernahme</MenuItem>
|
||||
{accountingPeriods.map((period) => (
|
||||
<MenuItem key={period.id} value={period.id}>
|
||||
{period.name}
|
||||
@@ -1261,7 +1261,7 @@ export function DashboardShell({
|
||||
AG anlegen
|
||||
</Typography>
|
||||
<Typography color="text.secondary">
|
||||
{"Lege Arbeitsgruppen separat an. Bearbeiten oder loeschen geht danach direkt in der Uebersicht per Stift."}
|
||||
{"Lege Arbeitsgruppen separat an. Bearbeiten oder löschen geht danach direkt in der Übersicht per Stift."}
|
||||
</Typography>
|
||||
</Box>
|
||||
<Box component="form" onSubmit={handleCreateWorkingGroup}>
|
||||
@@ -1330,8 +1330,8 @@ export function DashboardShell({
|
||||
</TextField>
|
||||
<Typography variant="body2" color="text.secondary">
|
||||
{selectedBudgetWorkingGroup
|
||||
? `Neue Budgettoepfe landen in ${selectedBudgetWorkingGroup.name}.`
|
||||
: "Waehle zuerst eine bestehende AG aus."}
|
||||
? `Neue Budgettöpfe landen in ${selectedBudgetWorkingGroup.name}.`
|
||||
: "Wähle zuerst eine bestehende AG aus."}
|
||||
</Typography>
|
||||
<TextField
|
||||
label="Budget-Name"
|
||||
@@ -1438,7 +1438,7 @@ export function DashboardShell({
|
||||
<Stack spacing={2}>
|
||||
<TextField
|
||||
label="Login-Name"
|
||||
helperText={"Damit melden sich Nutzer spaeter an und so werden sie auch angezeigt."}
|
||||
helperText={"Damit melden sich Nutzer später an und so werden sie auch angezeigt."}
|
||||
value={userForm.username}
|
||||
onChange={(event) => setUserForm((current) => ({ ...current, username: event.target.value }))}
|
||||
required
|
||||
@@ -1452,7 +1452,7 @@ export function DashboardShell({
|
||||
}
|
||||
required
|
||||
fullWidth
|
||||
helperText={"Dieses Passwort wird nach dem Anlegen oben als Bestaetigung angezeigt."}
|
||||
helperText={"Dieses Passwort wird nach dem Anlegen oben als Bestätigung angezeigt."}
|
||||
/>
|
||||
<Button
|
||||
type="button"
|
||||
@@ -1501,7 +1501,7 @@ export function DashboardShell({
|
||||
? "Lege zuerst eine AG an."
|
||||
: userForm.role === "MEMBER"
|
||||
? "AG-Mitglieder brauchen eine feste AG-Zuordnung."
|
||||
: "Optional: Auch Vorstand und Finanz-AG koennen einer AG zugeordnet werden."
|
||||
: "Optional: Auch Vorstand und Finanz-AG können einer AG zugeordnet werden."
|
||||
}
|
||||
>
|
||||
{userForm.role !== "MEMBER" ? <MenuItem value="">Ohne AG</MenuItem> : null}
|
||||
@@ -1518,7 +1518,7 @@ export function DashboardShell({
|
||||
...current,
|
||||
approvalPermissions: toggleApprovalPermission(current.approvalPermissions, approvalType)
|
||||
})),
|
||||
"Lege fest, fuer welche Freigabeschritte dieses Konto zeichnen darf."
|
||||
"Lege fest, für welche Freigabeschritte dieses Konto zeichnen darf."
|
||||
)}
|
||||
<Button type="submit" variant="outlined" disabled={busy}>
|
||||
Nutzer speichern
|
||||
@@ -1566,7 +1566,7 @@ export function DashboardShell({
|
||||
Nutzer verwalten
|
||||
</Typography>
|
||||
<Typography color="text.secondary">
|
||||
{"Bestehende Passwoerter bleiben sicher gehasht. Hier kannst du Rolle, AG-Zuordnung, Freigaberollen und Passwoerter pflegen."}
|
||||
{"Bestehende Passwörter bleiben sicher gehasht. Hier kannst du Rolle, AG-Zuordnung, Freigaberollen und Passwörter pflegen."}
|
||||
</Typography>
|
||||
</Box>
|
||||
<Stack spacing={1.4}>
|
||||
@@ -1631,14 +1631,14 @@ export function DashboardShell({
|
||||
startIcon={<DeleteOutlineRoundedIcon />}
|
||||
disabled={busy || !canDelete}
|
||||
onClick={async () => {
|
||||
if (!window.confirm(`Nutzer "${user.username}" wirklich loeschen?`)) {
|
||||
if (!window.confirm(`Nutzer "${user.username}" wirklich löschen?`)) {
|
||||
return;
|
||||
}
|
||||
|
||||
await handleDeleteUser(user.id);
|
||||
}}
|
||||
>
|
||||
{"Loeschen"}
|
||||
{"Löschen"}
|
||||
</Button>
|
||||
</Stack>
|
||||
</Stack>
|
||||
@@ -1695,7 +1695,7 @@ export function DashboardShell({
|
||||
? "Lege zuerst eine AG an."
|
||||
: draft.role === "MEMBER"
|
||||
? "AG-Mitglieder brauchen eine feste AG-Zuordnung."
|
||||
: "Optional: Auch Vorstand und Finanz-AG koennen einer AG zugeordnet werden."
|
||||
: "Optional: Auch Vorstand und Finanz-AG können einer AG zugeordnet werden."
|
||||
}
|
||||
>
|
||||
{draft.role !== "MEMBER" ? <MenuItem value="">Ohne AG</MenuItem> : null}
|
||||
@@ -1754,7 +1754,7 @@ export function DashboardShell({
|
||||
}
|
||||
fullWidth
|
||||
helperText={
|
||||
"Nur neu gesetzte Passwoerter sind sichtbar. Das alte Passwort bleibt absichtlich verborgen."
|
||||
"Nur neu gesetzte Passwörter sind sichtbar. Das alte Passwort bleibt absichtlich verborgen."
|
||||
}
|
||||
/>
|
||||
<Stack direction="row" gap={1} useFlexGap flexWrap="wrap">
|
||||
@@ -1907,16 +1907,16 @@ export function DashboardShell({
|
||||
|
||||
const overviewContent = (
|
||||
<Stack spacing={2.5}>
|
||||
{isCompactLayout && visibleGroups.length > 1 ? (
|
||||
{visibleGroups.length > 1 ? (
|
||||
<Card>
|
||||
<CardContent sx={{ p: 2.5 }}>
|
||||
<Stack spacing={1.5}>
|
||||
<Box>
|
||||
<Typography variant="h3" sx={{ fontSize: "1.15rem" }}>
|
||||
{"AG ausw\u00e4hlen"}
|
||||
AG auswählen
|
||||
</Typography>
|
||||
<Typography color="text.secondary">
|
||||
{"Mobil zeigen wir jeweils eine AG auf einmal, damit die Budgetkarten sauber lesbar bleiben."}
|
||||
Wähle die AG, die gerade in der Übersicht angezeigt werden soll.
|
||||
</Typography>
|
||||
</Box>
|
||||
<TextField
|
||||
@@ -1937,15 +1937,8 @@ export function DashboardShell({
|
||||
</Card>
|
||||
) : null}
|
||||
|
||||
<Stack
|
||||
direction={isCompactLayout ? "column" : "row"}
|
||||
gap={2}
|
||||
sx={{
|
||||
overflowX: isCompactLayout ? "visible" : "auto",
|
||||
pb: isCompactLayout ? 0 : 2
|
||||
}}
|
||||
>
|
||||
{(isCompactLayout ? (mobileSelectedGroup ? [mobileSelectedGroup] : []) : visibleGroups).map((group) => (
|
||||
<Stack direction="column" gap={2}>
|
||||
{(mobileSelectedGroup ? [mobileSelectedGroup] : []).map((group) => (
|
||||
<BudgetColumn
|
||||
key={group.id}
|
||||
group={group}
|
||||
@@ -1958,7 +1951,8 @@ export function DashboardShell({
|
||||
onSaveWorkingGroup={handleSaveWorkingGroup}
|
||||
onDeleteWorkingGroup={handleDeleteWorkingGroup}
|
||||
onSaveBudget={handleSaveBudget}
|
||||
onDeleteBudget={handleDeleteBudget} onDeleteExpense={handleDeleteExpense}
|
||||
onDeleteBudget={handleDeleteBudget}
|
||||
onDeleteExpense={handleDeleteExpense}
|
||||
/>
|
||||
))}
|
||||
</Stack>
|
||||
|
||||
Reference in New Issue
Block a user