Redmine Dashboards
DashboardsInstrumentpaneler byggda av de sparade frågor du redan har — ett rutnät med dra-och-släpp av nyckeltal, tabeller och femton diagramtyper, aggregerade i SQL och begränsade till det som den som tittar får se.
Flera servrar: $399

- Widgettyper
- 23
- Diagramvarianter
- 15
- Redmine
- 4 · 5 · 6 · 7
- Databaser
- MySQL, MariaDB, PostgreSQL
- Ändringar i kärnan
- Inga
Bygg med dra och släpp
Ett rutnät där rutorna går att flytta och ändra storlek på och som sparar sig självt medan du arbetar. Placera nyckeltal, diagram och tabeller tills tavlan berättar det den ska — utan layoutfil och utan omladdning.
Femton diagramtyper
Stapel, liggande stapel, staplad stapel, linje, flera linjer, yta, cirkel, ring, radar, polär, mätare, tratt, värmekarta, treemap och förloppsring — ritade med Apache ECharts, i ljust och mörkt.
Dina sparade frågor, visualiserade
Rikta en widget mot en sparad fråga så ärver den filtret, inklusive anpassade fält, bevakare och underprojekt. Eller gör hela tavlan av frågan med ett klick.
Aggregerat i SQL
GROUP BY, COUNT, SUM och AVG körs i databasen, så hundratusen ärenden räknas i stället för att instansieras. Resultaten cachas per användare, widget och aktiva filter.
Anpassat efter den som tittar
Varje läsning utgår från Issue.visible(user), TimeEntry.visible(user) och Query.visible(user), så inget diagram kan summera ett projekt som läsaren inte är medlem i.
Filter, uppdatering och nedborrning
En filterrad ramar om hela tavlan, ett intervall per instrumentpanel håller en väggskärm aktuell, och varje stapel, tårtbit och cell leder till ärendelistan bakom den.
Se det köra i Redmine
Varje skärmbild här kommer från en vanlig Redmine 6-installation med pluginet lagt i plugins/. Instrumentpanelerna ligger under Redmines eget sidhuvud och egna menyer, för det är där de körs.
Bygg en tavla


Widgetar


Dela och växla


Frågan är redan rapporten
Ingenting här ber dig beskriva dina data en andra gång. Filtrera en ärendelista som du alltid har gjort, spara den, och den sparade frågan blir det urval som en widget aggregerar över — exakt den relation Redmine själv använder för att rita listan.
| Steg | Det du gör | Det du får |
|---|---|---|
| 1. Spara en fråga | Filtrera ärendelistan — anpassade fält, bevakare, underprojekt — och klicka på Spara | En namngiven fråga, synlig för dem du delade den med |
| 2. Rikta en widget mot den | Välja frågan i widgetdialogen | Datakälla och en rimlig standardgruppering, härledda åt dig |
| 3. Eller generera hela tavlan | Klicka på «Från fråga» | En instrumentpanel med nyckeltal och diagram bundna till frågan, i ett enda anrop |
Konfigurerat med rullgardiner, inte med SQL
En widget är en källa, en dimension, ett mått och en aggregering. Gruppera ärenden på status, prioritet, ärendetyp, tilldelad eller vilket datumfält som helst indelat i dagar, veckor, månader eller år; räkna dem, summera uppskattade timmar eller ta medelvärdet av färdiggraden. Ingen i teamet skriver SQL för att få ett diagram — och eftersom det inte finns någon SQL att skriva finns det heller ingen fråga som kan sträcka sig förbi behörigheterna hos den som läser.

Konfigurera varje widget i samma formulär
Varje widget, oavsett om det är ett nyckeltal, en stapel eller en ring, ställs in i samma korta formulär: titel och typ, datakälla, en valfri sparad fråga för filter, ett mått och en gruppering med Top-N. Byt typ så anpassar sig formuläret.




En inställningssida för administratörer
Under Administration › Tillägg › Redmine Charts ställer du in cachning av resultat per användare, cache-TTL (5–86400 sekunder, standard 300), standardtema ljust eller mörkt, och ett standardintervall för automatisk uppdatering, där 0 stänger av den. Sidan är Redmines egen inställningsvy för plugins.
23 widgettyper, och plats för dina egna
Varje typ är metadata i ett register, så konfigurationsgränssnittet byggs av widgetens egen deklaration i stället för av ett handskrivet formulär per diagram.
| Familj | Typer | Ställs in med |
|---|---|---|
| Diagram | Stapel, liggande stapel, staplad stapel, linje, flera linjer, yta, cirkel, ring, radar, polär, mätare, tratt, värmekarta, treemap, förloppsring | Källa, dimension, mått, aggregering |
| Nyckeltal / siffra | En enda aggregerad siffra, med eget filter | count · sum · avg · min · max |
| Tabell | Ett sidindelat rutnät över samma behörighetsbegränsade data | Kolumnväljare och filter |
| Innehåll | Markdown, anteckningar, HTML, iframe, aktivitetsflöde, senaste ärenden | Fri text, eller ett av Redmines egna flöden |
Ritat med Apache ECharts
Femton varianter, gjorda för ljust och mörkt, omritade vid storleksändring och läsbara även på en väggskärm. Paketet innehåller en färdigbyggd bundle, så installationen kräver varken Node eller ett byggsteg.
Varje segment borrar ned
Ett klick på en stapel, en tårtbit eller en ruta i värmekartan öppnar Redmines ärendelista filtrerad på exakt de ärendena. Siffrorna förblir granskningsbara, eftersom du alltid kan landa på raderna bakom dem.
Globala filter och automatisk uppdatering
En filterrad ramar om alla widgetar på tavlan samtidigt, och ett uppdateringsintervall per instrumentpanel håller skärmen i korridoren aktuell. Noll stänger av uppdateringen.
Mallar och ritningar
Spara en tavla som återanvändbar mall, duplicera den per team, eller exportera den som en JSON-ritning och importera den i en annan instans — från test till produktion utan att bygga om den för hand.
Ett plugin, en tavla för varje team
En leveransansvarig, en supportdesk och en enskild utvecklare byggde var sin på några minuter av sparade frågor de redan hade.





Två källor inbyggda, och din bredvid
Ärenden och nedlagd tid kommer med sina dimensioner och mått redan registrerade, båda bakom Redmines egna synlighetsurval. En källa som ett annat plugin lägger till behandlas exakt likadant.
| Källa | Dimensioner | Mått |
|---|---|---|
| Ärenden | Status, prioritet, ärendetyp, projekt, tilldelad, författare, kategori, version, skapad, uppdaterad, slutdatum | Antal ärenden, uppskattade timmar, färdiggrad |
| Nedlagd tid | Projekt, användare, aktivitet, datum | Timmar, antal poster |
| Din egen | Det du registrerar | Det du registrerar |
Att utöka är att registrera, inte att patcha
En datakälla är en klass med ett namn, sina dimensioner, sina mått och ett base_scope som filtrerar på behörighet; en widgettyp är en hash. Registrera endera från din egen plugins init.rb med RedmineCharts.register_data_source eller register_widget_type, så dyker den upp i konfigurationsgränssnittet direkt — med filtrering, cachning och nedborrning på köpet. Ingenting i det här pluginet ändras för det.
Ingen aggregerar det hen inte får läsa
En instrumentpanel är ett snabbt sätt att läcka en siffra, så varje läsning börjar i urvalet för den som tittar i stället för att sluta med en kontroll mot det.
Först synlighet, sedan gruppering
Issue.visible(user), TimeEntry.visible(user) och Query.visible(user) begränsar relationen innan en enda rad räknas. En summa från ett projekt du inte är medlem i kan inte dyka upp i någon widget, eftersom de raderna aldrig fanns i mängden.
Fyra finkorniga behörigheter
Se instrumentpaneler, skapa dem, administrera alla och hantera mallar — var och en tilldelas per roll. Och allt är avstängt tills någon aktiverar modulen Instrumentpaneler för projektet.
Delning via medlemskapen
Ge en tavla till användare, grupper, roller eller hela projekt. Varje anrop löser upp viewable_by? och editable_by? på nytt via Redmines egna medlemskap, inte via en parallell åtkomstlista som glider isär.
Ingenting lämnar servern
Frontenden pratar bara med det här pluginets JSON-API på din egen Redmine, via sessionen och CSRF-token som redan finns. Ingen extern tjänst, inget licensanrop hem, ingen telemetri.
Byggt för att klara en stor instans
Att räkna hundratusen ärenden borde inte innebära att man laddar hundratusen objekt. Här gör det inte det.
| Fråga | Så hanteras den |
|---|---|
| Aggregering | GROUP BY, COUNT, SUM och AVG körs i SQL — rader instansieras aldrig bara för att räknas |
| Mycket breda dimensioner | Top-N-vikning håller svaret litet när en dimension har tusentals värden |
| Upprepade visningar | Resultat cachas per användare, widgetens ändringstid och aktiva filter via Rails.cache; TTL är en inställning och Redis fungerar som det är |
| En långsam widget | Widgetar laddas oberoende av varandra, så en tung fråga håller aldrig hela tavlan gisslan |
| Saknad JS-bundle | Rails renderar varje widgets data på servern som reserv, så sidan degraderas i stället för att bli tom |
Portabelt med avsikt, inte av en slump
Stöd för flera versioner och databaser är inbyggt från början — migreringar, JSON-lagring och datumindelning är skrivna för att tåla skillnaderna.
| Område | Stöds | Hur |
|---|---|---|
| Redmine | 4.x, 5.x, 6.x, 7.x | Deklarerar requires_redmine version_or_higher 4.0.0, utan överlagringar av kärnan som kan hamna i otakt |
| Rails | 5.2 → 8.0 | Migreringarna utgår från 5.2, som varje version upp till 8.0 förstår |
| Ruby | 2.5+ | Samma minimikrav som Redmine 4 |
| Databaser | MySQL, MariaDB, PostgreSQL | JSON lagras i vanliga textkolumner — identisk DDL överallt — med en serialiserare som väljer rätt form för varje Rails-version |
| Datumgruppering | Dag, vecka, månad, år | Grupperar på en portabel CAST(col AS DATE) och viker sedan in i intervall i Ruby — ingen leverantörsspecifik SQL |
| Köra migreringar igen | Säkert | Defensivt skrivna, så en avbruten uppgradering kan köras om |
Skriptbart från första dagen
Varje endpoint ligger under /redmine_charts/api, svarar med JSON och tillämpar exakt samma behörigheter som gränssnittet — en tavla kan alltså skapas från CI eller genereras en per team.
| Metod | Sökväg | Vad den gör |
|---|---|---|
| GET | /dashboards | Alla instrumentpaneler som anroparen får se |
| POST | /dashboards | Skapa en |
| GET | /dashboards/:id | Hämta en tavla med dess widgetar |
| PATCH | /dashboards/:id | Ändra namn, layout eller inställningar |
| POST | /dashboards/:id/duplicate | Klona den, widgetar inkluderade |
| GET | /dashboards/:id/export | Exportera en JSON-ritning |
| POST | /dashboards/import | Skapa en tavla från en ritning |
| POST | /dashboards/:id/widgets | Lägga till en widget |
| GET | /widgets/:id/data | Aggregerad, behörighetsbegränsad widgetdata |
| GET | /meta/data_sources | Källor, dimensioner, mått och de sparade frågor du kan använda |
Vad som finns i dag, och vad som kommer
Punkterna på färdplanen är tillägg till sin natur — nya datakällor, widgettyper och exporttjänster — så ingen av dem kommer att kräva någon migrering av dig. De står som färdplan, inte som funktioner, så att du kan köpa utifrån det som finns i paketet i dag.
| Funktion | Status |
|---|---|
| Instrumentpaneler: skapa, duplicera, sätta standard, exportera och importera | Klart |
| Rutnät med dra-och-släpp, storleksändring och automatisk sparning | Klart |
| Nyckeltal, tabell och hela ECharts-uppsättningen av diagram | Klart |
| Visuell widgetkonfiguration utan SQL | Klart |
| Återanvändning av sparade frågor och tavlor genererade med ett klick | Klart |
| Globala filter som uppdaterar hela tavlan | Klart |
| Nedborrning från diagram → ärendelista | Klart |
| Behörighetsbegränsad SQL-aggregering och cachning per användare | Klart |
| Delning, mallar, ljust och mörkt tema | Klart |
| Flera versioner, flera databaser, reserv renderad på servern | Klart |
| Export till PDF, PNG och Excel | Planerat |
| Bakgrundsjobb för mycket tunga rapporter | Planerat |
| Liveuppdateringar via WebSocket | Planerat |
| Schemalagda ögonblicksbilder via e-post | Planerat |
| Kiosk- / väggskärmsläge | Planerat |
| AI-rapportbyggare med naturligt språk | Planerat |
| Widgetar för kalender, burndown och gantt-sammanfattning | Planerat |
Installera i tre steg
Kräver shell-åtkomst och möjlighet att köra rake-uppgifter. Ta alltid en säkerhetskopia innan du installerar ett tillägg.
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
Ändrar eller skriver det över några av Redmines kärnfiler?
Behöver jag Node.js eller ett byggsteg för att installera det?
Fungerar mina befintliga sparade frågor, även de krångliga?
Kan någon se siffror från ett projekt hen inte har tillgång till?
Vilka databaser stöds?
Vilka versioner av Redmine och Rails körs det på?
Kan vi lägga till egna datakällor eller diagramtyper?
Vad saknas medvetet i version 1.0?
Priser
En server
En Redmine-installation · obegränsat antal användare · 12 månaders uppdateringar.
Flera servrar
Obegränsat antal Redmine-servrar · obegränsat antal användare · 12 månaders uppdateringar.