Frontmatter
| id | 9191 |
| title | DevIndex: Implement 4-Mode Data Toggle (Total, Public, Private, Commits) |
| state | Closed |
| labels | enhancementai |
| assignees | tobiu |
| createdAt | Feb 17, 2026, 5:12 AM |
| updatedAt | Feb 17, 2026, 5:41 AM |
| githubUrl | https://github.com/neomjs/neo/issues/9191 |
| author | tobiu |
| commentsCount | 1 |
| parentIssue | 9106 |
| subIssues | [] |
| subIssuesCompleted | 0 |
| subIssuesTotal | 0 |
| blockedBy | [] |
| blocking | [] |
| closedAt | Feb 17, 2026, 5:41 AM |
DevIndex: Implement 4-Mode Data Toggle (Total, Public, Private, Commits)
tobiu added parent issue #9106 on Feb 17, 2026, 5:12 AM
tobiu assigned to @tobiu on Feb 17, 2026, 5:40 AM

tobiu
Feb 17, 2026, 5:40 AM
Input from Gemini 3 Pro:
✦ Implemented the 4-Mode Data Toggle ('Total', 'Public', 'Private', 'Commits').
Changes:
Model (
DevIndex.model.Contributor):
- Added
totalPublicContributionscalculated field (Total - Private).- Updated
addYearFieldsto generatepy{year}(Private) andpuy{year}(Public, calculated) virtual fields. These use the same optimized, prototype-based getter strategy asyandcyto support Grid sorting without memory overhead.- Enhanced class documentation to explain the
RecordFactoryoptimization.Controls (
DevIndex.view.home.ControlsContainer):
- Replaced the "Commits Only" checkbox with a Radio Group (
name: 'dataMode') offering the 4 mutually exclusive modes.Grid (
DevIndex.view.home.GridContainer):
- Replaced
commitsOnlyconfig withdataMode(default: 'total').- Updated
afterSetDataModeto:
- Switch column data fields (
totalContributions->totalCommits->totalPrivateContributions->totalPublicContributions).- Update the active sorter to match the new mode.
- Update
activitysparkline logic to pull from the correct source arrays (y,cy,py, ory-py).- Update Year columns to use the correct prefix (
y,cy,py). Note: Public Year sorting usesy(Total) as a proxy for now, as dynamic per-year sorting would require additional model complexity.Toolbar (
DevIndex.view.home.StatusToolbar):
- Updated
updateLabelsto calculate and display the correct total based on the selecteddataMode.
tobiu closed this issue on Feb 17, 2026, 5:41 AM
We are currently using a "Commits Only" checkbox to switch between Total Contributions and Total Commits. To provide deeper insights, we want to expand this to a "Data Mode" concept with 4 mutually exclusive views:
Total - Private).Tasks:
Contributor.mjs): AddtotalPublicContributionscalculated field.ControlsContainer.mjs): Replace "Commits Only" checkbox with a Radio Group for the 4 modes.GridContainer.mjs):commitsOnlyconfig withdataMode(String enum).afterSetDataModeto switch columns (totalContributions,totalPublicContributions,totalPrivateContributions,totalCommits) and update the active sorter.activitysparkline logic to use the correct data source (Public =y - py, Private =py).StatusToolbar.mjs): Update summary labels based on the selected mode.