Redmine Dashboards
DashboardsDashbord bygget på de lagrede søkene du allerede har — et dra-og-slipp-rutenett med nøkkeltall, tabeller og femten diagramtyper, aggregert i SQL og avgrenset til det den som ser på har lov til å se.
Flere servere: $399

- Modultyper
- 23
- Diagramvarianter
- 15
- Redmine
- 4 · 5 · 6 · 7
- Databaser
- MySQL, MariaDB, PostgreSQL
- Endringer i kjernen
- Ingen
Bygg med dra og slipp
Et rutenett der feltene kan flyttes og endre størrelse, og som lagrer seg selv mens du jobber. Plasser nøkkeltall, diagrammer og tabeller til tavlen forteller det den skal — uten oppsettfil og uten å laste siden på nytt.
Femten diagramtyper
Søyle, liggende søyle, stablet søyle, linje, flere linjer, areal, kake, ring, radar, polar, måler, trakt, varmekart, treemap og fremdriftsring — tegnet med Apache ECharts, i lyst og mørkt.
De lagrede søkene dine, visualisert
Pek en modul mot et lagret søk, så arver den filteret, inkludert egendefinerte felter, observatører og underprosjekter. Eller lag hele tavlen av søket med ett klikk.
Aggregert i SQL
GROUP BY, COUNT, SUM og AVG kjører i databasen, så hundre tusen saker blir talt i stedet for instansiert. Resultatene mellomlagres per bruker, modul og aktive filtre.
Tilpasset den som ser på
Enhver lesing starter i Issue.visible(user), TimeEntry.visible(user) og Query.visible(user), så ingen graf kan summere et prosjekt leseren ikke er medlem av.
Filtre, oppdatering og nedboring
Én filterlinje rammer inn hele tavlen på nytt, et intervall per dashbord holder en veggskjerm oppdatert, og hver søyle, kakebit og celle fører til saklisten bak.
Se det kjøre i Redmine
Hvert skjermbilde her er fra en vanlig Redmine 6-installasjon med tillegget lagt i plugins/. Dashbordene ligger under Redmines egen topplinje og egne menyer, for det er der de kjører.
Bygg en tavle


Moduler


Del og bytt


Søket er allerede rapporten
Ingenting her ber deg beskrive dataene dine en gang til. Filtrer en sakliste slik du alltid har gjort, lagre den, og det lagrede søket blir utvalget en modul aggregerer over — nøyaktig den relasjonen Redmine selv bruker for å tegne listen.
| Steg | Det du gjør | Det du får |
|---|---|---|
| 1. Lagre et søk | Filtrer saklisten — egendefinerte felter, observatører, underprosjekter — og klikk Lagre | Et navngitt søk, synlig for dem du delte det med |
| 2. Pek en modul mot det | Velg søket i moduldialogen | Datakilde og en fornuftig standardgruppering, utledet for deg |
| 3. Eller lag hele tavlen | Klikk på «Fra søk» | Et dashbord med nøkkeltall og diagrammer knyttet til søket, i én enkelt forespørsel |
Satt opp med nedtrekkslister, ikke med SQL
En modul er en kilde, en dimensjon, et mål og en aggregering. Grupper saker på status, prioritet, sakstype, ansvarlig eller et hvilket som helst datofelt delt inn i dager, uker, måneder eller år; tell dem, legg sammen estimerte timer eller ta gjennomsnittet av ferdiggraden. Ingen i teamet skriver SQL for å få et diagram — og siden det ikke finnes SQL å skrive, finnes det heller ikke noe søk som kan strekke seg forbi rettighetene til den som leser.

Konfigurer hver modul i ett skjema
Hver modul, enten det er et nøkkeltall, en søyle eller en ring, settes opp i det samme korte skjemaet: tittel og type, datakilde, et valgfritt lagret søk for filtre, et mål og en gruppering med Top-N. Bytt type, så tilpasser skjemaet seg.




Én innstillingsside for administratorer
Under Administrasjon › Tillegg › Redmine Charts stiller du inn mellomlagring av resultater per bruker, cache-TTL (5–86400 sekunder, standard 300), standardtema lyst eller mørkt, og et standardintervall for automatisk oppdatering, der 0 slår det av. Siden er Redmines egen innstillingsside for tillegg.
23 modultyper, og plass til dine egne
Hver type er metadata i et register, så konfigurasjonsflaten bygger seg selv av modulens egen erklæring i stedet for av et håndskrevet skjema per diagram.
| Familie | Typer | Settes opp med |
|---|---|---|
| Diagrammer | Søyle, liggende søyle, stablet søyle, linje, flere linjer, areal, kake, ring, radar, polar, måler, trakt, varmekart, treemap, fremdriftsring | Kilde, dimensjon, mål, aggregering |
| Nøkkeltall / tall | Ett aggregert tall, med sitt eget filter | count · sum · avg · min · max |
| Tabell | Et sideinndelt rutenett over de samme rettighetsavgrensede dataene | Kolonnevelger og filtre |
| Innhold | Markdown, notater, HTML, iframe, aktivitetsstrøm, siste saker | Fri tekst, eller en av Redmines egne strømmer |
Tegnet med Apache ECharts
Femten varianter, laget for lyst og mørkt, tegnet på nytt ved skalering og fortsatt lesbare på en veggskjerm. Pakken inneholder en ferdigbygd bundle, så installasjonen krever verken Node eller et byggesteg.
Hvert segment borer ned
Et klikk på en søyle, en kakebit eller en celle i varmekartet åpner Redmines sakliste filtrert på nøyaktig de sakene. Tallene er fortsatt etterprøvbare, fordi du alltid kan lande på radene bak dem.
Globale filtre og automatisk oppdatering
Én filterlinje rammer inn alle modulene på tavlen på én gang, og et oppdateringsintervall per dashbord holder skjermen i gangen oppdatert. Null slår oppdateringen av.
Maler og tegninger
Lagre en tavle som gjenbrukbar mal, dupliser den per team, eller eksporter den som en JSON-tegning og importer den i en annen instans — fra test til produksjon uten å bygge den opp igjen for hånd.
Ett tillegg, en tavle for hvert team
En leveranseleder, en kundestøtte og en enkelt utvikler bygde hver sin på få minutter fra lagrede søk de allerede hadde.





To kilder innebygd, og din ved siden av
Saker og brukt tid kommer med dimensjonene og målene sine allerede registrert, begge bak Redmines egne synlighetsutvalg. En kilde et annet tillegg registrerer, behandles helt likt.
| Kilde | Dimensjoner | Mål |
|---|---|---|
| Saker | Status, prioritet, sakstype, prosjekt, ansvarlig, forfatter, kategori, versjon, opprettet, oppdatert, sluttdato | Antall saker, estimerte timer, ferdiggrad |
| Brukt tid | Prosjekt, bruker, aktivitet, dato | Timer, antall føringer |
| Din egen | Det du registrerer | Det du registrerer |
Å utvide er å registrere, ikke å lappe
En datakilde er en klasse med et navn, dimensjonene sine, målene sine og et base_scope som filtrerer på rettigheter; en modultype er en hash. Registrer en av dem fra init.rb i ditt eget tillegg med RedmineCharts.register_data_source eller register_widget_type, så dukker den opp i konfigurasjonsflaten med én gang — med filtrering, mellomlagring og nedboring på kjøpet. Ingenting i dette tillegget endres for å få det til.
Ingen aggregerer det de ikke får lese
Et dashbord er en rask måte å lekke et tall på, så enhver lesing starter i utvalget til den som ser på, i stedet for å ende med en kontroll mot det.
Først synlighet, så gruppering
Issue.visible(user), TimeEntry.visible(user) og Query.visible(user) begrenser relasjonen før en eneste rad telles. En sum fra et prosjekt du ikke er medlem av, kan ikke dukke opp i noen modul, for de radene var aldri i mengden.
Fire finmaskede rettigheter
Se dashbord, opprette dem, administrere alle og styre maler — hver tildeles per rolle. Og alt er slått av til noen aktiverer modulen Dashbord for prosjektet.
Deling gjennom medlemskapene
Gi en tavle til brukere, grupper, roller eller hele prosjekter. Hver forespørsel avgjør viewable_by? og editable_by? på nytt ut fra Redmines egne medlemskap, ikke ut fra en parallell tilgangsliste som før eller siden sklir ut.
Ingenting forlater serveren
Frontenden snakker bare med JSON-API-et til dette tillegget på din egen Redmine, via økten og CSRF-tokenet som allerede er der. Ingen ekstern tjeneste, ingen lisensoppringning hjem, ingen telemetri.
Bygget for å tåle en stor instans
Å telle hundre tusen saker burde ikke bety at man laster hundre tusen objekter. Her betyr det ikke det.
| Tema | Slik er det løst |
|---|---|
| Aggregering | GROUP BY, COUNT, SUM og AVG kjører i SQL — rader blir aldri instansiert bare for å telles |
| Svært brede dimensjoner | Top-N-folding holder svaret lite når en dimensjon har tusenvis av verdier |
| Gjentatte visninger | Resultater mellomlagres per bruker, modulens endringstidspunkt og aktive filtre via Rails.cache; TTL er en innstilling, og Redis fungerer som det er |
| En treg modul | Modulene lastes uavhengig av hverandre, så en tung spørring holder aldri hele tavlen igjen |
| Manglende JS-bundle | Rails gjengir dataene til hver modul på serveren som reserve, så siden faller tilbake i stedet for å bli tom |
Portabelt med vilje, ikke ved en tilfeldighet
Støtte for flere versjoner og databaser er tenkt inn fra starten — migreringer, JSON-lagring og datoinndeling er skrevet for å tåle forskjellene.
| Område | Støttet | Hvordan |
|---|---|---|
| Redmine | 4.x, 5.x, 6.x, 7.x | Deklarerer requires_redmine version_or_higher 4.0.0, uten overstyringer av kjernen som kan komme i utakt |
| Rails | 5.2 → 8.0 | Migreringene tar utgangspunkt i 5.2, som alle utgivelser opp til 8.0 forstår |
| Ruby | 2.5+ | Samme minstekrav som Redmine 4 |
| Databaser | MySQL, MariaDB, PostgreSQL | JSON ligger i vanlige tekstkolonner — identisk DDL overalt — med en serialiserer som velger riktig form per Rails-versjon |
| Datogruppering | Dag, uke, måned, år | Grupperer på en portabel CAST(col AS DATE) og bretter deretter inn i intervaller i Ruby — ingen leverandørspesifikk SQL |
| Kjøre migreringer på nytt | Trygt | Skrevet defensivt, så en avbrutt oppgradering kan kjøres om igjen |
Skriptbart fra første dag
Hvert endepunkt ligger under /redmine_charts/api, svarer med JSON og håndhever nøyaktig de samme rettighetene som grensesnittet — en tavle kan dermed settes opp fra CI eller genereres én per team.
| Metode | Sti | Hva den gjør |
|---|---|---|
| GET | /dashboards | Alle dashbord den som kaller får se |
| POST | /dashboards | Opprett ett |
| GET | /dashboards/:id | Hent en tavle med modulene sine |
| PATCH | /dashboards/:id | Endre navn, oppsett eller innstillinger |
| POST | /dashboards/:id/duplicate | Klon den, moduler inkludert |
| GET | /dashboards/:id/export | Eksporter en JSON-tegning |
| POST | /dashboards/import | Opprett en tavle fra en tegning |
| POST | /dashboards/:id/widgets | Legg til en modul |
| GET | /widgets/:id/data | Aggregerte, rettighetsavgrensede moduldata |
| GET | /meta/data_sources | Kilder, dimensjoner, mål og de lagrede søkene du kan bruke |
Hva som finnes i dag, og hva som kommer
Punktene på veikartet er tillegg av natur — nye datakilder, modultyper og eksporttjenester — så ingen av dem vil kreve at du migrerer noe. De står som veikart, ikke som funksjoner, slik at du kan kjøpe ut fra det som ligger i pakken i dag.
| Funksjon | Status |
|---|---|
| Dashbord: opprett, dupliser, sett standard, eksporter og importer | Klar |
| Dra-og-slipp-rutenett med skalering og automatisk lagring | Klar |
| Nøkkeltall, tabell og hele ECharts-settet av diagrammer | Klar |
| Visuell modulkonfigurasjon uten SQL | Klar |
| Gjenbruk av lagrede søk og tavler generert med ett klikk | Klar |
| Globale filtre som oppdaterer hele tavlen | Klar |
| Nedboring fra diagram → sakliste | Klar |
| Rettighetsavgrenset SQL-aggregering og mellomlagring per bruker | Klar |
| Deling, maler, lyst og mørkt tema | Klar |
| Flere versjoner, flere databaser, reserve gjengitt på serveren | Klar |
| Eksport til PDF, PNG og Excel | Planlagt |
| Bakgrunnsjobber for svært tunge rapporter | Planlagt |
| Liveoppdateringer via WebSocket | Planlagt |
| Planlagte øyeblikksbilder sendt på e-post | Planlagt |
| Kiosk- / veggskjermmodus | Planlagt |
| AI-rapportbygger med naturlig språk | Planlagt |
| Moduler for kalender, burndown og gantt-sammendrag | Planlagt |
Installer i tre trinn
Krever shell-tilgang og mulighet til å kjøre rake-oppgaver. Ta alltid sikkerhetskopi før du installerer en utvidelse.
cd /path/to/redmine # unzip the package from your email or download link unzip redmine_charts-1.0.0.zip -d plugins/ bundle install
bundle exec rake redmine:plugins:migrate NAME=redmine_charts RAILS_ENV=production # optional: the built-in dashboard templates bundle exec rake redmine_charts:seed_templates RAILS_ENV=production touch tmp/restart.txt
# Project → Settings → Modules → Charts & Dashboards # then grant the dashboard permissions to the roles that need them # a Dashboards entry appears in the top menu for anyone who holds one
Endrer eller overskriver det noen av Redmines kjernefiler?
Trenger jeg Node.js eller et byggesteg for å installere det?
Vil de lagrede søkene mine virke, også de kompliserte?
Kan noen se tall fra et prosjekt de ikke har tilgang til?
Hvilke databaser støttes?
Hvilke Redmine- og Rails-versjoner kjører det på?
Kan vi legge til egne datakilder eller diagramtyper?
Hva er bevisst utelatt i versjon 1.0?
Priser
Én server
Én Redmine-installasjon · ubegrenset antall brukere · 12 måneders oppdateringer.
Flere servere
Ubegrenset antall Redmine-servere · ubegrenset antall brukere · 12 måneders oppdateringer.