- Use the browser origin for the sidebar REST API link so data maintenance event setup does not abort on newer Nextcloud versions.
- user migration ignored data loads
- favorites error
- test case fixes
- code hardening
- visual UI for creating calculated columns
not containsreport filter operator with wildcard support for excluding matches- migration of Selenium to Playwright UI lifecycle coverage
- new layouts for chart and table option dialogs
- UI unification
- code hardening
- Can't change report title after copying #571
- Restore the collapsed sidebar section right-arrow icon by shipping the missing asset again
- Render the filter dialog Wiki help text as a clickable link instead of showing raw placeholders
- Run first-start demo imports sequentially to avoid false import-failed errors after creating the sample reports
- Prevent duplicate favorite widgets on the start screen when overlapping favorites loads complete out of order
- Fix
/whatsnewcrashes on Nextcloud 33 by usingexecuteQuery()inWhatsNewMapper - Persist wizard dismissal for demo imports to prevent re-importing demo reports on every startup
- Data sources can offer report templates within the wizard
- Startup splash screen
- Playwright UI and PHPUnit and testing
- Reusable REUSE lint wrapper script for local test runs
- Automatically import demo reports on first app start for each user
- Open the layout chooser immediately after creating a new panorama
- Enter panorama edit mode automatically after selecting the first layout on a newly created panorama
- Enable/disable data aggregation in the column selection dialog
- Add a template/own-report chooser as the first report wizard step
- Shorten time aggregation labels to the relevant year/month/day granularity
- Prevent new panoramas from reusing page content/layout from previously edited panoramas
- Keep aggregated numeric values when rows with empty/null values are merged after removing columns
- Ignore stale drilldown column-selection indices that no longer map to dimensions after report dimension changes
- Normalize GitHub datasource HTTP error payloads to always return an empty data array
- Stop report loading spinner and show an explicit error when
/datarequests fail
- Caching also for data sources. (Can be implemented by data source owner)
- TTL based caching for GitHub, External CSV and External JSON
- File-change based caching for local Spreadsheet, CSV and JSON datasources
- Chart options now include a doughnut label style setting (percentage vs. absolute value)
- Use native color picker inputs in chart options for data series colors
- Dark Mode: Settings element does not adapt text color #565
- Harden filter column handling to block unsupported identifiers
- Fix public chart only link
- Preserve chart option callback functions (e.g. datalabel formatters) during option composition
- Harden panorama ownership checks to prevent unauthorized read/update/delete access
- Guard browser cache access when localStorage is unavailable (e.g. Android WebView)
- Disable datasource cache validation for dataload execution paths to prevent not-modified responses during background imports
- Prepare chart option handling for future enhancements
- Add a datasource-grouped template selector to wizard step 1 and sync it with step 2 selections
- php 8.5 compatibility fix
- Prevent double submissions by showing busy indicators during report and data imports
- Nullpointer in DataloadController::importFile() #560 #555
- Extend filter variable replacement tests with multiple filter cases
- Update filter option handling for BETWEEN case #559 @joleaf
- XSS protection
- file import cause double reports #554
- Cache not use for dashboard
- Icon fixes
- NC32 compatibility
- Performance: Cache report data in the browser (using ETag & If-None-Match) #535
- Warn about unsaved changes before leaving a report
- OCS endpoint to create reports from csv files via files clients
- Time aggregation on all key figures and not only the last one
- Replace controller HTTP annotations with PHP attributes
- Update warning indicators to use Nextcloud 32 contrast variables
- Hide menu bar and show loading spinner while reports are loading
- Fix PHP 8.4 deprecation warnings #534 @robertoschwald
- Date formatting on all table rows (not stopping after empty cells)
- Fix double report execution after wizard close
- Correct drilldown aggregation for numeric dimension indices
- Fix threshold copying when saving report as copy
- Threshold lines in charts using Chart.js annotation plugin
- Show installed version in navigation bar
- Inline rename for all navigation items
- Group sharing for panoramas
- Smart picker shows panoramas and reports
- Performance tweaks
- Threshold configuration moved to report menu
- Localized numbers with comma separators now evaluate correctly in thresholds
- Analytics not starting due to not executed migration #514
- Smart picker not working #513
- Context Chat issue
- Favorite reports in subfolders appearing twice
- Unified navigation showing panoramas and reports together
- Collapsible sections for favorites, panoramas and reports
- Improved CSS styling for multi-level navigation
- Persist navigation open state
- Dashboard favorites list now also shows panoramas
- UI cleanup
- Refreshed modal dialog styling with subtle animations
- "New report" button renamed to a generic "New" selector with type options
- Move share dialog from sidebar to own popup
- Only one navigation section can be open at a time
- Favorites are fetched in parallel for improved load times
- New icons
- Bigger tooltip hover distance #492
- Navigation updates instantly when items are created or deleted without reloading
- Navigation keeps Favorites open and only one other section expands at a time
- Newly created items open immediately and appear in the correct navigation section
- Date thresholds now evaluate correctly in tables
- Reload report after threshold modifications
- Highlight selected threshold row in sidebar
- Threshold validation for numbers with thousands separator
- Ordering of thresholds (validation sequence) #479
- Enable editing of existing thresholds #477
- Add legend selection for reports in panoramas #482
- Add timeSeries data model for e.g. Health data #483
- Add active option indicators in report menu #485
- Various unit tests
- Allow thresholds on any column #474
- Attention: existing thresholds are affected. See change here for details
- API v4 for will add %currentDate% as Y-m-d - see wiki
- Change HTML grabber datasource to curl
- Highlight selected report in panorama modal #484
- legend "undefined" in doughnut chart
- dynamic filter for quarters (e.g. %last quarter%)
- Add Top N +others grouping #460
- Add time grouping feature #464
- Show all button in chart legend #473
- Support multiple rows in filter dialog #472
- Order of thresholds can be arranged with drag & drop #474
- JSON data source: remove column limit
- Refactor filter dialog to use Notification framework #452
- Refactor drilldown dialog to use Notification framework #462
- Limit filter removal action to icon #470
- fix warning for importing less than 3 columns
- new Panorama page button not working
- Filter not working when text has "," #441
- Adjust chart height when table hidden #445d
- Shared Panorama permission handling #428
- Print layout #302
- Activities not shown correctly
- funnel chart type
- option to sort by any column
- Chart.js v4.4.9
- incorrect aggregation of Nextcloud Table data
- dynamic font color in colored input fields
- aggregated values not shown correctly
- Undefined array key "operation" FlowOperation #440
- Beta: Compact visualization for table (for usage in panorama)
- reading the third level in a json array #434
- undefined array key 2 at DataloadService.php#494 #433
- panorama pdf export layout
- aggregate data also without value column
- dark mode issues
- align border in filter dialog
- indicate more values (...) in filter dialog
- catch sting column in tables data source
- load only required data source details in sidebar
- KPI widget for Panorama #427
- calculated columns: correct percentage formula in total row
- report copy is not taking over all properties
- empty columns (e.g. manual input) need to be handled as null during database update
- GitHub: personal access token to avoid rate limit
- report not displayed in panorama
- header missing in github report
- handling github rate limit error
- GitHub: report on release assets
- handling of report options
- import data from file
- fix links from integrations to reports
- Integration to Share Review app
- GitHub: report on releases, issues and pull requests
- table options: disable locales formatting for content #423
- NC 29 required due to app config dependency
- change chart options
- copy data load not working
- disable single data sources globally #415
- more Panorama layouts
- PhpSpreadsheet 3.4.0
- local spreadsheet: connected cells
- header gradient
- wrong info link in data load screen
- own data options not working #413
- table: number formatting and string alignment
- pdf export header
- Database migration issue
- AI Assistant - Context Chat integration #403
- Panoramas - multi page dashboards
- data source: Local JSON
- full screen presentation mode
- Analytics branding
- Chart.js v4.4.3
- moment.js v2.30.1
- NC30 compatibility
- rework of sharing backend
- no activities for added data anymore
- excel data source: handling of time and % values
- clean URLs without #
- excel data source: remove all-null columns
- code style
- dark mode problems #400
- wrong decimal handling for certain numbers #397
- navigation css
- columns changeable in report type "stored data" #406
- sidebar chart options not applied on immediately after update
- charts: select account- (values in columns) or kpi-model (values in rows) #393
- JSON: allow insecure/self-signed certificate #309
- REUSE compliance
- SPDX license and copyright header
- material icons
- Save filter fails for table-only report #392
- missing variable in public shares
- dark theme issues
- "Parameter missing" in Nextcloud Tables data source #387
- copy data loads
- DataTables 2.0.3
- Code cleanup and refactoring
- console error when using timestamps for 1-column raw data #384
- css deprecation
- CSP issues in NC28 with js scripts
- Cron schedule "End of day" and "Start of day" #381
- flow event listener for NC28
- css adjustment for NC28
- scss removal (<26)
- min version 26
- missing back button when no data sets exist yet
- Nextcloud Tables name with "-" #380
- js files loaded in an undefined sequence #378
- save error for reports without table
- type parsing in report mapper
- report import not creating dataset
- js files loaded in an undefined sequence #378
- Chart: stacked and stacked 100% options #370
- bigger input fields in data source options
- incorrect record count during data loads
- NC Flow - background color
- incorrect API error message #371
- custom colors in doughnut chart #372
- dashboard charts not generating
- csv import remove spaces
- chart generation optimization
- translation integration for reports #358
- add custom columns (incl. text variables) in column picker #359
- list available values for input boxes (e.g. filters) #362
- csv data: select header row #360
- Report: drill down & aggregation also for external data sources #365
- Tables: fixed first column, horizontal scrolling #367
- Tables: save states like table length and sorting #367
- DataTables 1.13.6
- 3digit comma values evaluated as 1000s #357
- show errors of external data sources
- error on public pages #363
- NC 27 Uncaught (in promise) TypeError: OC.Apps is undefined #356
- Error in journal after upgrade Nextcloud to 24.0.12 #355
- Settings navigation not working
- Sharing reports not possible any more #354
- Sharing reports not possible any more #354
- Whats-new popup
- smart picker integration #343
- sharing of report groups #342
- Allow custom headers in JSON data source #351
- Grouping data source parameters into "more" section for better readability
- cleanup receiving shares when user is deleted
- thresholds of other user in shared report
- URL parsing replace & in CSV data source #348
- unified popups
- wizard ui enhancement
- column picker for data sources #337
- number-only option field for data sources
- import reports directly from computer and not via NC files
- unified popups
- report import not working #336
- hide export button for folder #335
- error handling when data source type is not available anymore
- automated data deletion not working #339
- cannot change color of data series #338
- chart legend not scrolling
- UI inconsistency (dataset maintenance <> advanced) #340
- new report wizard closing button hidden
- php version dependencies (type declaration)
- data deletion simulation not counting correct
- share edit setting not saved
- catching external datasource issues
- handling of null columns during loads
- JSON: read array data which is not on the first level #326
- recognize dates in spreadsheet data source #311
- removal of jQuery dependencies
- table search box gets hidden #329
- decimal number formatting in table
- Notifications for failed data loads
- Schedule deletion jobs per dataset to clean up old data #316
- Filter variables to use same time format like chart #321
- Sidebar UI optimizations
- Optimized share report template
- No update permission when sharing to group #324
- Notifications for failed data loads
- Schedule deletion jobs per dataset to clean up old data #316
- Filter variables to use same time format like chart #321
- Sidebar UI optimizations
- Optimized share report template
- No update permission when sharing to group #324
- Missing dataset id in example API call #317
- No data received on JSON #319
- Text variables for API #314
- DataTables 1.12.1
- Chart.js v3.9.1
- chartjs-plugin-datalabels v2.1.0
- Simplify "New record" notification maintenance #303
- handle thousand separator comma
- regex datasource wrong html escaping
- issue in dataload: URL parsing replace & #278
- Sharing of groups should not be possible #313
- various NC25 css fixes
- Print layout #302
- Navigation drag & drop #292
- Text variables for thresholds #299
- New threshold notification type: "new record" #297
- NC25 support
- Usernames shown as IDs instead of readable names #286
- Faster report creation #293
- Notification issue for occ dataload #294
- Share Link doesn't include port number #298
- Display series are persistently listed in the legend even if not present #288
- html-grabber not working due to html-escaping
- Icons for share users too big #282
- Shared report not shown #283
- wrong image url #284
- new application start page #276
- persist legend selections (hidden/visible) #120
- remove data when user is deleted #280
- Chart.js v3.8
- chartjs-plugin-zoom v1.2.1
- issue when datasets exist without reports #273
- unhandled error in data load #274
- issue in data load: URL parsing replace & #278
- Database error during fresh install
- Public API to get plain chart for external website inclusion #259 => wiki for details
- XSS protection (credit to: Jafar Abo Nada; https://twitter.com/jafar_abo_nada; UpdateLap)
- notification threshold not working
- Quick start in data maintenance #267
- Quick start closure #264
- Dynamic text variables for filter #186 => wiki for details
- Zoom in charts #246
- Analysis functions (beta): Aggregate / disaggregate values #258
- JSON data source: POST body; reading arrays #233 => wiki for details
- Cancel report load when another report is selected #249
- Chart.js v3.7
- l10n: Untranslated messages #255
- l10n: Text strings in demo #254
- l10n: First Run Wizard #253
- open report from url #248
- file picker not working #239
- Fix donut chart selection in wizard #242 @connium
- Cannot set "can navigate" for other than the very first user in the list #238
- Datasource Undefined array key "user_id" #240
- Make dataload faster #236
- Search error #234
- php7.3 incompatibility #209
- text variable issue
- No default text in dropdown #226
- No text string to translate for "copy" #228
- Color of closure icon #225
- Filter does not work on the graph shared by link #224
- ru translations @AleksovAnry
- make wizard text selectable
- Data maintenance in advanced mode
- Multiple reports per dataset #193
- GET/POST for json datasource
- Error texts for datasources #196
- "New report" & "New Dataset" Wizard #197
- HU translation #199
- enable Transifex #202
- Dashboard Size/Format of displayed numbers #187
- Chart.js 3.6
- Data with only day/month #184
- Navigation layout issue #190
- Ads a 0 in front of 2 digit month #191
- Report shared by link no chart is displayed #192
- Chart axis assignment not working #189
- Report: text variables(e.g. %lastUpdate%) #145
- Charts: customize colors #119
- Charts: datalabels in doughnuts
- automatic refresh of report #182
- Enable receiver of share to unshare #171
- sorting of external/unstructured data #175
- various loading indicators #157
- Chart.js 3.5
- Update ru language @sibergad
- Trend only for visible data series #172
- Dashboard subheader #180
- move to \Psr\Log\LoggerInterface
- DatasetService removes first favorite #185
- dataset options not merged #178
- dataset options not merged on dashboard #179
- threshold colors wrong in dashboard #159
- Issues with bulk data upload #136
- Database issue on NC21 installation #113
- ru translations @AleksovAnry
- UI cleanups #138
- Analysis functions: trend #144
- Report: Save logic also for chart options #123
- Report: Same filter logic for all data sources #139
- Report: Download chart as image #143
- Datasource: overwrite column with custom text #131
- REST API V3: get report list, details & data #151 @ochorocho
- Migration to Chart.js V.3 #140
- Update ru language @sibergad @AleksovAnry
- New key in l10n #129
- workflow not working
- Report: handle spaces in filters
- Issues with bulk data upload #136
- occ command error #130
- Error when sharing xlsx report #133
- handle db migration issues #148
- document from group folder not working #146
- First start wizard showing every time #132
- Datasource: Spreadsheet (xls, xlsx, ods) #115
- Displayed date & time in UTC #54
- Improve robustness of data load (empty data) #112
- Usability when creating new reports
- UI improvements
- Share link to clipboard and not new window
- Filter usability enhancements #122
- Sharing link not working #121
- "Limit to groups" not working #73
- Dashboard icon missing
- Float numbers in graph tooltips #117
- High CPU load during dataloads #118
- sharing "can modify" does not show the current status. #125
- Database issue on NC21 installation #113
- Dataload issue with "External file" #110
- First Start Wizard #103
- Export / import reports (incl data) #100
- Parameter to skip header rows in csv and file datasource #97
- Allow multiple paths in one JSON load wiki
- Favorite also for shared reports #107
- Various UI cleanups and performance enhancements
- SQL error for shared reports #98
- Datasource options field in DB too short #78
- JSON source not adding timestamp #106
- Error in occ- and scheduled load #109
- Allow filter-permissions on shared reports #77
- NC21
- delete option in report menu
- Filter Changed are not persisted automatically #94
- Disable dataload for non-internal reports #74
- more flexible clipboard import
- don´t load dashboard when accessing report directly
- Favorites dashboard not showing in app startscreen
- Missing language keys #86 @AleksovAnry
- fr translations #92 @simmstein
- wording corrections
- shared reports showing multiple times
- image path for alternative app folder
- Advanced: Dataload tab does not load #79
- event to register external datasources #71
- better datasource config using dropdowns
- share token not generated
- Chart: tooltips not showing
- an error occurred while using NC search #70
- database issue for shared reports #69
- dashboard error when widget not enabled
- NC20
- NC20 Dashboard Widget #61
- NC20 Search integration #66
- Sharing: user + groups #60
- API: use display names for upload #58
- API: accepting arrays #55
- API: delete data #56
- Report: mark reports as favorite #63
- translation: ru, ru_RU @AleksovAnry
- translations: fr #67 @simmstein
- headers for RegEx datasource @AleksovAnry
- Dataload: Purge Dataset #47
- Enhanced datamodel #59
- new app icon
- Floating point numbers rounded off in Rest API calls #57
- Sharing: user + groups #60
- API: use display names for upload #58
- API: accepting arrays #55
- API: delete data #56
- Report: mark reports as favorite #63
- translation: ru, ru_RU @AleksovAnry
- translation: fr #67 @simmstein
- headers for RegEx datasource @AleksovAnry
- Dataload: Purge Dataset #47
- Enhanced datamodel #59
- new app icon
- Floating point numbers rounded off in Rest API calls #57
- DB index too long
- WhatsNew popup #43
- Chart: customisation per data-series #44
- Chart: combined charts #44
- Chart: secondary axis #36
- Report: persist filters #36
- migration to QueryBuilder
- migration from database.xml to /Migration
- cleanup notification messages
- various css improvements
- Enable filters in reports #41
- avoid multiple notifications for same threshold by replacing old ones
- shorten app name to 'Analytics'
- Thresholds not working in table #39
- Thresholds not accepting commas
- appstore certificate issue
- appstore certificate issue
- advanced settings not showing
- NC19
- handle German date format in input form
- regex not working - options field too short #31
- frontend doesn't respect the users timezone #17
- donate button #35
- shorten notification text to fit iOS push banner
- double category labels #28
- column mismatch in dataload for git datasource
- data deletion simulation display bug
- Datasource: JSON #21 (e.g. NC monitoring)
- occ command for executing dataloads #16
- Data deletion with wildcards
- Compatible with dark theme #11
- Exchange Highcharts with Charts.js #23
- Removed incorrect error logs in API
- Notification parsed subject
- NC 18 Flow integration #10
- Enhanced dataloads with scheduling #13
- Advanced configuration page for more options than sidebar #12
- Datasource: website grabber #14
- Thresholds for all datasource types (notifications just for database)
- Compatibility dark mode #11
- Wiki
- link report in activity message
- redesign of backend (controllers; mappers)
- XSS risk in innerHTML
- NC16
- Notification missing setParsedSubject
- Activity not always reported
- Notification pushed to wrong user
- Thresholds not read for external report types #9
- Notifications icon path
- Thresholds: NC Notification and color coding #5
- 'de' language files
- currency/unit formatting in datatable column
- CSV import format validation #7
- Assets blocked by uBlock origin #8
- favicon
- direct url to report
- chart type: area stacked
- Initial version of Data Analytics