RedmineKit

Redmine Dashboards

Dashboards
5.0 (0)·New installationer

Dashboards bygget på de gemte forespørgsler, du allerede har — et træk-og-slip-gitter med nøgletal, tabeller og femten diagramtyper, aggregeret i SQL og afgrænset til det, den der kigger har lov at se.

$199 / én server

Flere servere: $399

Refusion inden for 5 arbejdsdage12 måneders opdateringerKildekode inkluderet
Et Redmine Charts-dashboard i Redmine 6: en nøgletalsflise med 10.000 sager, en projektring, søjler med sager pr. prioritet, en statusring og et linjediagram over oprettede sager pr. måned.
Et levende dashboard Nøgletalsfliser, ringe, søjle- og linjediagrammer på én tavle — hvert tal aggregeret i SQL ud fra Redmines egne rettighedsafgrænsede data.
Widgettyper
23
Diagramvarianter
15
Redmine
4 · 5 · 6 · 7
Databaser
MySQL, MariaDB, PostgreSQL
Ændringer i kernen
Ingen

Byg med træk og slip

Et gitter, hvor felterne kan flyttes og ændre størrelse, og som gemmer sig selv, mens du arbejder. Placér nøgletal, diagrammer og tabeller, indtil tavlen fortæller det, den skal — uden layoutfil og uden genindlæsning.

Femten diagramtyper

Søjle, liggende søjle, stablet søjle, linje, flere linjer, areal, cirkel, ring, radar, polær, måler, tragt, varmekort, treemap og fremdriftsring — tegnet med Apache ECharts, i lyst og mørkt.

Dine gemte forespørgsler, visualiseret

Peg en widget på en gemt forespørgsel, så arver den filteret, inklusive brugerdefinerede felter, observatører og underprojekter. Eller lav hele tavlen ud af forespørgslen med ét klik.

Aggregeret i SQL

GROUP BY, COUNT, SUM og AVG kører i databasen, så hundrede tusind sager bliver talt i stedet for instantieret. Resultaterne caches pr. bruger, widget og aktive filtre.

Tilpasset den, der kigger

Enhver læsning tager udgangspunkt i Issue.visible(user), TimeEntry.visible(user) og Query.visible(user), så intet diagram kan lægge et projekt sammen, som læseren ikke er medlem af.

Filtre, opdatering og nedbrydning

Én filterlinje rammer hele tavlen ind på ny, et interval pr. dashboard holder en vægskærm ajour, og hver søjle, lagkagestykke og celle fører til sagslisten bagved.

Se det køre i Redmine

Hvert skærmbillede her stammer fra en almindelig Redmine 6-installation med pluginet lagt i plugins/. Dashboardene ligger under Redmines eget sidehoved og egne menuer, for det er der, de kører.

Byg en tavle

Redigeringstilstand på et dashboard: hver widget viser trækhåndtag og hjørner til skalering, og layoutet gemmes automatisk.
Redigeringstilstand Slå Redigér til, og hver widget kan trækkes og skaleres. Layoutet gemmer sig selv undervejs.
Dialogen Tilføj widget: widgettype, datakilde, valgfri gemt forespørgsel, mål og aggregering, valgt i rullemenuer.
Tilføj en widget Vælg en widgettype, en datakilde og eventuelt en gemt forespørgsel, og vælg så mål og aggregering. Ingen skriver SQL.

Widgets

Vælgeren til widgettype med femten ECharts-varianter, nøgletal og tabel samt Markdown, noter, HTML, iframe, aktivitetsfeed og seneste sager.
23 widgettyper Femten ECharts-varianter plus nøgletal, tabel og seks indholdswidgets — Markdown, noter, HTML, iframe, aktivitetsfeed og seneste sager.
En widgets egen menu åben på et dashboard, med handlingerne opdatér, konfigurér og slet.
Widgethandlinger Hver widget indlæses for sig og har sin egen menu — opdatér ét diagram uden at genindlæse resten af tavlen.

Del og skift

Delingsdialogen for dashboards med synlighederne privat, delt og offentlig, og vælgere til roller, grupper og projekter.
Deling Hold en tavle privat, del den med bestemte roller, grupper eller projekter, eller åbn den for alle indloggede brugere — afgjort gennem Redmines medlemskaber.
Dashboardvælgeren i værktøjslinjen med alle synlige tavler og muligheder for at sætte en standard, eksportere som JSON eller oprette en ny tavle.
Skift tavle Vælgeren i værktøjslinjen viser alle de tavler, du kan se. Fastgør én som standard, eksportér den som JSON, eller start en ny.

Forespørgslen er allerede rapporten

Intet her beder dig beskrive dine data en gang til. Filtrér en sagsliste, som du altid har gjort, gem den, og den gemte forespørgsel bliver det udsnit, en widget aggregerer over — præcis den relation, Redmine selv bruger til at tegne listen.

Én gemt forespørgsel, tre veje til en tavle
TrinDet du gørDet du får
1. Gem en forespørgselFiltrér sagslisten — brugerdefinerede felter, observatører, underprojekter — og klik GemEn navngiven forespørgsel, synlig for dem, du delte den med
2. Peg en widget på denVælg forespørgslen i widgetdialogenDatakilde og en fornuftig standardgruppering, udledt for dig
3. Eller lav hele tavlenKlik på «Ud fra forespørgsel»Et dashboard med nøgletal og diagrammer bundet til den, i én enkelt forespørgsel

Sat op med rullemenuer, ikke med SQL

En widget er en kilde, en dimension, et mål og en aggregering. Gruppér sager efter status, prioritet, sagstype, ansvarlig eller et hvilket som helst datofelt delt op i dage, uger, måneder eller år; tæl dem, læg de estimerede timer sammen eller tag gennemsnittet af færdiggraden. Ingen i teamet skriver SQL for at få et diagram — og fordi der ikke er SQL at skrive, findes der heller ingen forespørgsel, der kan række ud over rettighederne hos den, der læser.

Dialogen Ud fra forespørgsel: vælg en gemt Redmine-forespørgsel for at generere et dashboard med nøgletal og diagrammer bundet til dens filtre.
Ud fra en gemt forespørgsel Vælg en hvilken som helst gemt forespørgsel, og få en færdig tavle med nøgletal og diagrammer — status, prioritet, ansvarlig, trend og en tabel — bundet til dens filtre.

Konfigurér hver widget i én formular

Hver widget, hvad enten det er et nøgletal, en søjle eller en ring, sættes op i den samme korte formular: en titel og en type, en datakilde, en valgfri gemt forespørgsel til filtre, et mål og en gruppering med Top-N. Skift typen, og formularen tilpasser sig.

Formularen Konfigurér widget for et nøgletal: titel Sager i alt, datakilde Sager, gemt forespørgsel, mål Antal sager, funktion count.
Nøgletalsflise Ét tal: et mål og en aggregering over en gemt forespørgsel.
Formularen Konfigurér widget for et søjlediagram: Sager pr. prioritet, grupperet efter Prioritet, Top N 20.
Søjlediagram Gruppér efter en hvilken som helst dimension, fx prioritet, og skær den lange hale af med Top-N.
Formularen Konfigurér widget for et ringdiagram: Sager pr. status, grupperet efter Status.
Ringdiagram De samme felter med en anden type. Skifter du diagram, beholdes dine dataindstillinger.
Indstillinger for Redmine Charts: caching slået til, cachens udløb 300 sekunder, standardtema Lyst, interval for automatisk opdatering 0.
Pluginindstillinger Caching, cache-TTL, standardtema og automatisk opdatering, på Redmines egen indstillingsside.

Én indstillingsside til administratorer

Under Administration › Plugins › Redmine Charts indstiller du caching af resultater pr. bruger, cache-TTL (5–86400 sekunder, standard 300), standardtema lyst eller mørkt, og et standardinterval for automatisk opdatering, hvor 0 slår den fra. Siden er Redmines egen indstillingsside for plugins.

23 widgettyper, og plads til dine egne

Hver type er metadata i et register, så konfigurationsfladen bygger sig selv ud fra widgettens egen erklæring i stedet for ud fra en håndskrevet formular pr. diagram.

Kataloget, der følger med
FamilieTyperSættes op med
DiagrammerSøjle, liggende søjle, stablet søjle, linje, flere linjer, areal, cirkel, ring, radar, polær, måler, tragt, varmekort, treemap, fremdriftsringKilde, dimension, mål, aggregering
Nøgletal / talÉt aggregeret tal, med sit eget filtercount · sum · avg · min · max
TabelEt sideinddelt gitter over de samme rettighedsafgrænsede dataKolonnevælger og filtre
IndholdMarkdown, noter, HTML, iframe, aktivitetsfeed, seneste sagerFri tekst, eller et af Redmines egne feeds

Tegnet med Apache ECharts

Femten varianter, lavet til lyst og mørkt, gentegnet ved skalering og stadig læsbare på en vægskærm. Pakken indeholder en færdigbygget bundle, så installationen kræver hverken Node eller et byggetrin.

Hvert segment bryder ned

Et klik på en søjle, et lagkagestykke eller en celle i varmekortet åbner Redmines sagsliste filtreret præcis på dem. Tallene forbliver til at efterprøve, fordi du altid kan lande på rækkerne bag dem.

Globale filtre og automatisk opdatering

Én filterlinje rammer alle tavlens widgets ind på ny på én gang, og et opdateringsinterval pr. dashboard holder skærmen på gangen ajour. Nul slår opdateringen fra.

Skabeloner og tegninger

Gem en tavle som genbrugelig skabelon, dublér den pr. team, eller eksportér den som en JSON-tegning og importér den i en anden instans — fra test til drift uden at bygge den op igen i hånden.

Ét plugin, en tavle til hvert team

En leveranceansvarlig, en supportdesk og en enkelt udvikler byggede hver deres på få minutter ud fra gemte forespørgsler, de allerede havde.

Dashboard i fuld længde: nøgletal, ringe, prioritetssøjler, månedlig trend, arbejdsbyrde pr. ansvarlig og en sideinddelt sagstabel.
Porteføljeoverblik Nøgletal, ringe, trend, arbejdsbyrde pr. ansvarlig og en sideinddelt sagstabel.
Dashboardet Sager tildelt mig med et nøgletal, et arealdiagram og en statusring.
Sager tildelt mig En personlig tavle med et arealdiagram og en statusring.
Dashboardet Oprettede sager med et nøgletal, en ring pr. sagstype og prioritetssøjler.
Oprettede sager Fordeling på sagstype, prioritet og status med ét blik.
Supportdashboard: nøgletalsfliser for sager i alt og forbrugt tid, en statusring, søjler pr. prioritet, undertype og modul samt et linjediagram over oprettede sager pr. måned.
Supportoverblik Sager, forbrugt tid, prioritet, undertype og arbejdsbyrde pr. modul for én supportperiode.
Supportdashboard for et helt år: nøgletalsfliser for sager i alt og forbrugt tid, en statusring, søjler pr. prioritet, modul og undertype samt et linjediagram over oprettede sager pr. måned.
Supportåret i tal Sagsmængde, forbrugt tid samt fordeling på prioritet og modul, med udviklingen måned for måned.

To kilder indbygget, og din ved siden af

Sager og forbrugt tid kommer med deres dimensioner og mål allerede registreret, begge bag Redmines egne synlighedsudsnit. En kilde, et andet plugin tilføjer, behandles fuldstændig ens.

KildeDimensionerMål
SagerStatus, prioritet, sagstype, projekt, ansvarlig, forfatter, kategori, version, oprettet, opdateret, slutdatoAntal sager, estimerede timer, færdiggrad
Forbrugt tidProjekt, bruger, aktivitet, datoTimer, antal posteringer
Din egenDet du registrererDet du registrerer

At udvide er at registrere, ikke at lappe

En datakilde er en klasse med et navn, sine dimensioner, sine mål og et base_scope, der filtrerer på rettigheder; en widgettype er en hash. Registrér den ene eller den anden fra dit eget plugins init.rb med RedmineCharts.register_data_source eller register_widget_type, så dukker den straks op i konfigurationsfladen — med filtrering, caching og nedbrydning oveni. Der bliver ikke ændret noget i dette plugin for at få det til at virke.

Ingen aggregerer det, de ikke må læse

Et dashboard er en hurtig måde at lække et tal på, så enhver læsning begynder i udsnittet for den, der kigger, i stedet for at slutte med en kontrol mod det.

Først synlighed, så gruppering

Issue.visible(user), TimeEntry.visible(user) og Query.visible(user) begrænser relationen, før en eneste række tælles. En sum fra et projekt, du ikke er medlem af, kan ikke dukke op i nogen widget, for de rækker var aldrig i mængden.

Fire finkornede rettigheder

Se dashboards, oprette dem, administrere dem alle og styre skabeloner — hver især tildelt pr. rolle. Og det hele er slået fra, indtil nogen aktiverer modulet Dashboards for projektet.

Deling gennem medlemskaberne

Giv en tavle til brugere, grupper, roller eller hele projekter. Hver forespørgsel afgør viewable_by? og editable_by? igen ud fra Redmines egne medlemskaber og ikke ud fra en parallel adgangsliste, der før eller siden skrider.

Intet forlader serveren

Frontenden taler kun med dette plugins JSON-API på din egen Redmine, via den session og det CSRF-token, der allerede findes. Ingen ekstern tjeneste, intet licensopkald hjem, ingen telemetri.

Bygget til at holde til en stor instans

At tælle hundrede tusind sager burde ikke betyde, at man indlæser hundrede tusind objekter. Her betyder det ikke det.

Hvad der sker, når en tavle åbnes
EmneSådan er det løst
AggregeringGROUP BY, COUNT, SUM og AVG kører i SQL — rækker bliver aldrig instantieret alene for at blive talt
Meget brede dimensionerTop-N-foldning holder svaret lille, når en dimension har tusindvis af værdier
Gentagne visningerResultater caches pr. bruger, widgettens ændringstidspunkt og aktive filtre via Rails.cache; TTL er en indstilling, og Redis virker, som det er
En langsom widgetWidgets indlæses uafhængigt af hinanden, så en tung forespørgsel holder aldrig hele tavlen tilbage
Manglende JS-bundleRails gengiver hver widgets data på serveren som reserve, så siden falder tilbage i stedet for at stå tom

Portabelt med vilje, ikke ved et tilfælde

Understøttelse af flere versioner og databaser er tænkt ind fra starten — migreringer, JSON-lagring og datoinddeling er alle skrevet til at tåle forskellene.

OmrådeUnderstøttetHvordan
Redmine4.x, 5.x, 6.x, 7.xErklærer requires_redmine version_or_higher 4.0.0, uden overstyringer af kernen, der kan komme ud af takt
Rails5.2 → 8.0Migreringerne tager udgangspunkt i 5.2, som alle udgivelser op til 8.0 forstår
Ruby2.5+Svarer til minimumskravet for Redmine 4
DatabaserMySQL, MariaDB, PostgreSQLJSON ligger i almindelige tekstkolonner — identisk DDL overalt — med en serializer, der vælger den rigtige form pr. Rails-version
DatogrupperingDag, uge, måned, årGrupperer på en portabel CAST(col AS DATE) og folder derefter ind i intervaller i Ruby — ingen leverandørspecifik SQL
Køre migreringer igenSikkertSkrevet defensivt, så en afbrudt opgradering kan køres igen

Scriptbart fra første dag

Hvert endpoint ligger under /redmine_charts/api, svarer i JSON og håndhæver nøjagtig de samme rettigheder som brugerfladen — så en tavle kan oprettes fra CI eller genereres én pr. team.

MetodeStiHvad den gør
GET/dashboardsAlle dashboards, kalderen må se
POST/dashboardsOpret et
GET/dashboards/:idHent en tavle med dens widgets
PATCH/dashboards/:idRet navn, layout eller indstillinger
POST/dashboards/:id/duplicateKlon den, widgets med
GET/dashboards/:id/exportEksportér en JSON-tegning
POST/dashboards/importOpret en tavle ud fra en tegning
POST/dashboards/:id/widgetsTilføj en widget
GET/widgets/:id/dataAggregerede, rettighedsafgrænsede widgetdata
GET/meta/data_sourcesKilder, dimensioner, mål og de gemte forespørgsler, du kan bruge

Hvad der er med i dag, og hvad der kommer

Punkterne på køreplanen er tilføjelser af natur — nye datakilder, widgettyper og eksporttjenester — så ingen af dem vil kræve, at du migrerer noget. De står som køreplan, ikke som funktioner, så du kan købe ud fra det, der er i pakken i dag.

FunktionStatus
Dashboards: opret, duplikér, sæt standard, eksportér og importérKlar
Træk-og-slip-gitter med skalering og automatisk gemKlar
Nøgletal, tabel og hele ECharts-sættet af diagrammerKlar
Visuel widgetkonfiguration uden SQLKlar
Genbrug af gemte forespørgsler og tavler genereret med ét klikKlar
Globale filtre, der opdaterer hele tavlenKlar
Nedbrydning fra diagram → sagslisteKlar
Rettighedsafgrænset SQL-aggregering og caching pr. brugerKlar
Deling, skabeloner, lyst og mørkt temaKlar
Flere versioner, flere databaser, serverside-reserveKlar
Eksport til PDF, PNG og ExcelPlanlagt
Baggrundsjob til meget tunge rapporterPlanlagt
Liveopdateringer via WebSocketPlanlagt
Planlagte øjebliksbilleder sendt pr. e-mailPlanlagt
Kiosk- / vægskærmstilstandPlanlagt
AI-rapportbygger med naturligt sprogPlanlagt
Widgets til kalender, burndown og gantt-oversigtPlanlagt

Priser

Én server

$199

Én Redmine-installation · ubegrænset antal brugere · 12 måneders opdateringer.

Unlimited users12 months of updatesPriority email support
Køb licens

Flere servere

$399

Ubegrænset antal Redmine-servere · ubegrænset antal brugere · 12 måneders opdateringer.

Unlimited users12 months of updatesPriority email support
Køb licens
Køb