Bladeren bron

fix

master
FlorianEisenmenger 23 uur geleden
bovenliggende
commit
7de36d6e5b
3 gewijzigde bestanden met toevoegingen van 6 en 0 verwijderingen
  1. +1
    -0
      CLAUDE.md
  2. +4
    -0
      httpdocs/assets/styles/components/_main-nav.scss
  3. +1
    -0
      httpdocs/templates/_sections/nav.html.twig

+ 1
- 0
CLAUDE.md Bestand weergeven

@@ -101,6 +101,7 @@ bash httpdocs/deploy.sh
- **Rounding**: Konfigurierbar per `Account.trackingInterval` (1/15/30/60 Min)
- **API-Pattern**: `/api/...` Routen, JSON Request/Response, kein CSRF auf API-Endpunkten
- **Timer/Stoppuhr**: `TimeEntry.timerStartedAt` (nullable `DateTimeImmutable`) markiert laufende Timer. Pro User nur ein aktiver Timer gleichzeitig. Elapsed wird beim Stoppen auf `trackingInterval` gerundet und zu `duration` addiert.
- **Stundensätze (hourlyRate)**: Dreistufige Kaskade `Project.hourlyRate → Client.hourlyRate → Service.hourlyRate` (via `COALESCE`). Kunden und Projekte haben einen Rate-Mode-Toggle (Standard-Sätze vs. eigener Stundensatz), Services immer ein direktes Feld. Revenue-Berechnung in `TimeEntryRepository::sumRevenueFiltered()` nutzt die Kaskade.
- **Rollen**: `admin` (alles), `member` (eigene + fremde Einträge sehen), `tracker` (nur eigene)
- **CSS Custom Properties**: Brand-Farben via `:root`-Variablen (`--color-primary`, etc.)



+ 4
- 0
httpdocs/assets/styles/components/_main-nav.scss Bestand weergeven

@@ -55,6 +55,10 @@
}
}

.main-nav__separator {
width: $space-4;
}

.main-nav__logout {
display: inline-flex;
align-items: center;


+ 1
- 0
httpdocs/templates/_sections/nav.html.twig Bestand weergeven

@@ -51,6 +51,7 @@
{{ 'app.nav.services'|trans }}
</a>
{% endif %}
<span class="main-nav__separator"></span>
{% if isCurrentUserAdmin() %}
<a href="{{ path('team_index') }}"
class="main-nav__item main-nav__item--icon{% if currentRoute starts with 'team' %} main-nav__item--active{% endif %}">


Laden…
Annuleren
Opslaan