Redmine Dashboards
DashboardsTablouri de bord construite din interogările salvate pe care le aveți deja — o grilă drag-and-drop cu indicatori KPI, tabele și cincisprezece tipuri de grafice, agregate în SQL și limitate la ce are voie să vadă persoana care le privește.
Mai multe servere: $399

- Tipuri de widgeturi
- 23
- Variante de grafice
- 15
- Redmine
- 4 · 5 · 6 · 7
- Baze de date
- MySQL, MariaDB, PostgreSQL
- Patch-uri în core
- Niciunul
Editor drag-and-drop
O grilă redimensionabilă și reordonabilă, care se salvează singură în timp ce lucrați. Aranjați KPI-urile, graficele și tabelele până când tabloul spune povestea de care aveți nevoie — fără fișier de layout, fără reîncărcarea paginii.
Cincisprezece tipuri de grafice
Bare, bare orizontale, bare suprapuse, linie, linii multiple, arie, plăcintă, inel, radar, polar, indicator (gauge), pâlnie, hartă termică, treemap și inel de progres — desenate cu Apache ECharts, în modul luminos și întunecat.
Interogările salvate, vizualizate
Îndreptați un widget spre o interogare salvată și acesta îi preia filtrul — inclusiv câmpurile personalizate, observatorii și subproiectele. Sau transformați interogarea într-un tablou întreg dintr-un singur clic.
Agregare în SQL
GROUP BY, COUNT, SUM și AVG rulează în baza de date, deci o sută de mii de tichete sunt numărate, nu instanțiate. Rezultatele sunt memorate în cache per utilizator, widget și filtre active.
Limitat la ce poate vedea utilizatorul
Fiecare citire pornește de la Issue.visible(user), TimeEntry.visible(user) și Query.visible(user), deci niciun grafic nu poate totaliza un proiect al cărui membru nu este persoana care îl privește.
Filtre, reîmprospătare și detaliere
O singură bară de filtre redefinește întregul tablou, un interval de reîmprospătare per tablou menține actualizat un ecran de perete, iar fiecare bară, felie și celulă duce prin clic la lista de tichete din spatele ei.
Vedeți-l rulând în Redmine
Fiecare captură de ecran de aici provine dintr-o instalare Redmine 6 standard, cu pluginul pus în plugins/. Tablourile de bord stau sub antetul și meniurile Redmine, pentru că acolo rulează.
Construiți un tablou


Widgeturi


Partajare și comutare


Interogarea este deja raportul
Nimic de aici nu vă cere să vă descrieți datele a doua oară. Filtrați o listă de tichete ca întotdeauna, salvați-o, iar acea interogare salvată devine domeniul pe care îl agregă un widget — aceeași relație pe care o folosește Redmine pentru a afișa lista.
| Pas | Ce faceți | Ce obțineți |
|---|---|---|
| 1. Salvați o interogare | Filtrați lista de tichete — câmpuri personalizate, observatori, subproiecte — și apăsați Salvare | O interogare denumită, partajată cu cine ați ales |
| 2. Îndreptați un widget spre ea | Alegeți acea interogare în dialogul widgetului | Sursa de date și o grupare implicită rezonabilă, deduse automat |
| 3. Sau generați întregul tablou | Faceți clic pe Din interogare | Un tablou de bord cu indicatori KPI și grafice legate de ea, într-o singură cerere |
Configurat din liste derulante, nu din SQL
Un widget înseamnă o sursă, o dimensiune, o măsură și o agregare. Grupați tichetele după stare, prioritate, tip de tichet, persoană atribuită sau orice câmp de dată împărțit pe zile, săptămâni, luni sau ani; numărați-le, însumați orele estimate sau calculați media procentului realizat. Nimeni din echipă nu scrie SQL pentru a obține un grafic — și pentru că nu există SQL de scris, nu există nicio interogare care să depășească permisiunile persoanei care o citește.

Configurați orice widget dintr-un singur formular
Fiecare widget, fie KPI, grafic cu bare sau inel, se configurează în același formular scurt: un titlu și un tip, o sursă de date, o interogare salvată opțională pentru filtre, o măsură și o grupare cu Top-N. Schimbați tipul, iar formularul se adaptează.




O singură pagină de setări pentru administratori
În Administration › Plugins › Redmine Charts setați memorarea rezultatelor în cache pe utilizator, durata de viață a cache-ului (5–86.400 de secunde, implicit 300), tema implicită luminoasă sau întunecată și un interval implicit de reîmprospătare automată, unde 0 o dezactivează. Pagina este chiar ecranul de setări pentru pluginuri al Redmine.
23 de tipuri de widgeturi și loc pentru ale dumneavoastră
Fiecare tip este definit prin metadate dintr-un registru, astfel încât interfața de configurare se construiește singură din declarația widgetului, nu dintr-un formular scris manual pentru fiecare grafic.
| Familie | Tipuri | Se configurează cu |
|---|---|---|
| Grafice | Bare, bare orizontale, bare suprapuse, linie, linii multiple, arie, plăcintă, inel, radar, polar, indicator (gauge), pâlnie, hartă termică, treemap, inel de progres | Sursă, dimensiune, măsură, agregare |
| KPI / număr | O singură cifră agregată, cu propriul filtru | count · sum · avg · min · max |
| Tabel | O grilă paginată peste aceleași date limitate de permisiuni | Selector de coloane și filtre |
| Conținut | Markdown, note, HTML, iframe, flux de activitate, tichete recente | Text liber sau unul dintre fluxurile proprii ale Redmine |
Desenat cu Apache ECharts
Cincisprezece variante, cu teme luminoasă și întunecată, redesenate la redimensionare și lizibile și pe un ecran de perete. Pachetul vine precompilat, deci instalarea pluginului nu necesită Node și niciun pas de build.
Fiecare segment permite detalierea
Un clic pe o bară, o felie sau o celulă din harta termică deschide lista de tichete Redmine filtrată exact pe acele tichete. Cifrele rămân verificabile, pentru că puteți ajunge oricând la rândurile din spatele lor.
Filtre globale și reîmprospătare automată
O singură bară de filtre redefinește simultan toate widgeturile de pe tablou, iar un interval de reîmprospătare per tablou menține actualizat un ecran de pe hol. Valoarea zero dezactivează reîmprospătarea.
Șabloane și blueprinturi
Salvați un tablou ca șablon reutilizabil, duplicați-l pentru fiecare echipă sau exportați-l ca blueprint JSON și importați-l în altă instanță — de la staging la producție, fără a-l reconstrui manual.
Un singur plugin, câte un tablou pentru fiecare echipă
Un coordonator de livrare, un birou de suport și un singur dezvoltator le-au construit pe acestea în câteva minute, din interogări salvate pe care le aveau deja.





Două surse incluse și ale dumneavoastră alături de ele
Tichetele și înregistrările de timp vin cu dimensiunile și măsurile deja înregistrate, ambele protejate de domeniile de vizibilitate proprii ale Redmine. O sursă adăugată de un alt plugin este tratată identic.
| Sursă | Dimensiuni | Măsuri |
|---|---|---|
| Tichete | Stare, prioritate, tip de tichet, proiect, persoană atribuită, autor, categorie, versiune, data creării, data actualizării, termen | Număr de tichete, ore estimate, procent realizat |
| Înregistrări de timp | Proiect, utilizator, activitate, dată | Ore, număr de înregistrări |
| Ale dumneavoastră | Orice înregistrați | Orice înregistrați |
Extinderea înseamnă înregistrare, nu patch-uri
O sursă de date este o clasă cu un nume, dimensiunile, măsurile și un base_scope limitat de permisiuni; un tip de widget este un hash. Înregistrați oricare dintre ele din init.rb-ul propriului plugin cu RedmineCharts.register_data_source sau register_widget_type și apare imediat în interfața de configurare — moștenind filtrarea, cache-ul și detalierea. Nimic din acest plugin nu trebuie editat pentru asta.
Nimeni nu agregă ce nu poate citi
Un tablou de bord este o cale rapidă de a scăpa o cifră, de aceea fiecare citire pornește de la domeniul de vizibilitate al utilizatorului, în loc să se încheie cu o verificare față de el.
Întâi vizibilitatea, apoi gruparea
Issue.visible(user), TimeEntry.visible(user) și Query.visible(user) restrâng relația înainte să fie numărat vreun rând. Un total dintr-un proiect al cărui membru nu sunteți nu poate apărea în niciun widget, pentru că acele rânduri nu au fost niciodată în set.
Patru permisiuni granulare
Vizualizarea tablourilor de bord, crearea lor, gestionarea tuturor tablourilor, gestionarea șabloanelor — fiecare atribuibilă pe rol. Și totul rămâne dezactivat până când cineva activează modulul Charts & Dashboards pentru proiectul respectiv.
Partajare prin calitatea de membru
Acordați un tablou utilizatorilor, grupurilor, rolurilor sau unor proiecte întregi. Fiecare cerere reevaluează viewable_by? și editable_by? prin calitățile de membru proprii ale Redmine, nu printr-o listă de acces paralelă care se desincronizează în timp.
Nimic nu părăsește serverul
Interfața comunică doar cu API-ul JSON al acestui plugin, pe propriul Redmine, prin sesiunea și tokenul CSRF care există deja. Fără servicii externe, fără verificări de licență la distanță, fără telemetrie.
Construit să reziste unei instanțe mari
Numărarea a o sută de mii de tichete nu ar trebui să însemne încărcarea a o sută de mii de obiecte. Aici nu înseamnă.
| Aspect | Cum este tratat |
|---|---|
| Agregare | GROUP BY, COUNT, SUM și AVG rulează în SQL — rândurile nu sunt niciodată instanțiate doar pentru a fi numărate |
| Dimensiuni largi | Comasarea Top-N menține răspunsul mic atunci când o dimensiune are mii de valori |
| Vizualizări repetate | Rezultate memorate în cache pe utilizator, data modificării widgetului și filtrele active, prin Rails.cache; durata de viață este o setare, iar Redis funcționează fără modificări |
| Un widget lent | Widgeturile se încarcă independent, deci o singură interogare grea nu blochează niciodată întregul tablou |
| Un pachet JS lipsă | Rails redă pe server datele fiecărui widget ca soluție de rezervă, deci pagina se degradează în loc să rămână goală |
Portabil intenționat, nu din întâmplare
Compatibilitatea între versiuni și baze de date este gândită din start — migrările, stocarea JSON și gruparea pe date au fost scrise pentru a face față diferențelor.
| Aspect | Acceptat | Cum |
|---|---|---|
| Redmine | 4.x, 5.x, 6.x, 7.x | Declară requires_redmine version_or_higher 4.0.0, fără suprascrieri ale core-ului care să se învechească |
| Rails | 5.2 → 8.0 | Migrările vizează baza 5.2, pe care o înțelege fiecare versiune până la 8.0 |
| Ruby | 2.5+ | Corespunde cerinței minime a Redmine 4 |
| Baze de date | MySQL, MariaDB, PostgreSQL | JSON-ul stă în coloane text simple — același DDL peste tot — cu un serializator care alege forma potrivită pentru fiecare versiune Rails |
| Gruparea pe date | Zi, săptămână, lună, an | Grupează pe un CAST(col AS DATE) portabil, apoi comasează în intervale în Ruby — fără SQL specific unui furnizor |
| Rularea repetată a migrărilor | Sigură | Scrise defensiv, astfel încât o actualizare întreruptă poate fi reluată |
Automatizabil din prima zi
Fiecare endpoint se află sub /redmine_charts/api, returnează JSON și aplică exact aceleași permisiuni ca interfața — astfel încât tablourile pot fi create din CI sau generate câte unul pentru fiecare echipă.
| Metodă | Cale | Ce face |
|---|---|---|
| GET | /dashboards | Toate tablourile de bord vizibile apelantului |
| POST | /dashboards | Creează un tablou |
| GET | /dashboards/:id | Preia un tablou de bord cu widgeturile sale |
| PATCH | /dashboards/:id | Actualizează numele, aranjamentul sau setările |
| POST | /dashboards/:id/duplicate | Îl clonează, inclusiv widgeturile |
| GET | /dashboards/:id/export | Exportă un blueprint JSON |
| POST | /dashboards/import | Creează un tablou dintr-un blueprint |
| POST | /dashboards/:id/widgets | Adaugă un widget |
| GET | /widgets/:id/data | Datele agregate ale widgetului, limitate de permisiuni |
| GET | /meta/data_sources | Surse, dimensiuni, măsuri și interogările salvate pe care le puteți folosi |
Ce este disponibil azi și ce urmează
Elementele din foaia de parcurs sunt, prin design, adăugiri — surse de date, tipuri de widgeturi și servicii de export noi — deci niciunul nu vă va cere să migrați ceva. Sunt listate ca foaie de parcurs, nu ca funcționalități, ca să puteți cumpăra pe baza a ceea ce este inclus azi.
| Funcționalitate | Stare |
|---|---|
| Tablouri de bord: creare, duplicare, setare ca implicit, export și import | Disponibil |
| Grilă drag-and-drop redimensionabilă, cu salvare automată | Disponibil |
| KPI, tabel și setul complet de grafice ECharts | Disponibil |
| Configurare vizuală a widgeturilor, fără SQL | Disponibil |
| Reutilizarea interogărilor salvate și generarea tabloului dintr-un clic | Disponibil |
| Filtre globale care reîmprospătează întregul tablou | Disponibil |
| Detaliere de la grafic la lista de tichete | Disponibil |
| Agregare SQL și cache pe utilizator, limitate de permisiuni | Disponibil |
| Partajare, șabloane, teme luminoasă și întunecată | Disponibil |
| Compatibilitate între versiuni și baze de date, randare de rezervă pe server | Disponibil |
| Export PDF, PNG și Excel | Planificat |
| Joburi în fundal pentru rapoartele foarte grele | Planificat |
| Actualizări în timp real prin WebSocket | Planificat |
| Instantanee programate și trimise prin e-mail | Planificat |
| Mod kiosk / ecran de perete | Planificat |
| Generator de rapoarte cu AI, în limbaj natural | Planificat |
| Widgeturi pentru calendar, burndown și rezumat Gantt | Planificat |
Instalare în trei pași
Necesită acces shell și posibilitatea de a rula sarcini rake. Faceți întotdeauna o copie de siguranță înainte de a instala un plugin.
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
Modifică sau suprascrie fișiere core ale Redmine?
Am nevoie de Node.js sau de un pas de build pentru instalare?
Vor funcționa interogările mele salvate, inclusiv cele complicate?
Poate cineva să vadă cifre dintr-un proiect la care nu are acces?
Ce baze de date sunt acceptate?
Pe ce versiuni Redmine și Rails rulează?
Putem adăuga propriile surse de date sau tipuri de grafice?
Ce lipsește intenționat din versiunea 1.0?
Prețuri
Un singur server
O instanță Redmine · utilizatori nelimitați · 12 luni de actualizări.
Mai multe servere
Servere Redmine nelimitate · utilizatori nelimitați · 12 luni de actualizări.
Aveți nevoie de o soluție Redmine personalizată?
Căutați o funcționalitate care nu există în pluginurile noastre actuale?
RedmineKit oferă dezvoltare de pluginuri Redmine la comandă, personalizarea pluginurilor, automatizarea fluxurilor de lucru, integrări cu sisteme terțe și soluții adaptate afacerii dumneavoastră.
Spuneți-ne de ce aveți nevoie. Analizăm cerințele și vă propunem o soluție potrivită, cu un cost și un termen estimate.