Done 1.2.0 — a profile, unified navigation and fast statistics
The 1.2.0 release is about structure: where things live, who sees what, and how quickly it all opens. There’s a personal profile page now, the sidebar navigation folded into a single list, and statistics stopped stumbling on large exports. Role permissions got finer too: you can now control not only access to fields, but individual actions.
A personal profile page
Everyone now has their own profile page, styled the way they like: color, avatar, symbol, background image, all uploaded right there. Styling used to live in the entity preview, and there wasn’t really a personal space; now there is.
Navigation folded into one list
The sidebar used to behave differently across sections: Reports had its own intermediate “home” screen you had to pass through. We removed it. On the left there’s now a single list: add a record, profile, statistics, reports with sub-items (common, by project, by employee), employees, projects, teams. And the list isn’t the same for everyone: an item shows up only if you have the rights to it and the matching module is enabled. The panel itself became adaptive and can switch modes.
Statistics: faster and to the point
Large statistics exports used to lag. Now rows render as you scroll: only what’s visible lives on screen, not the whole table, and the page scrolls smoothly even across thousands of records. Period headings stay pinned to the top, so during a long scroll you can always see what a row belongs to. Filtering got smarter as well. The date range and the data are limited to what you’re allowed to see, and reports gained filters by project, team and direction. One more quiet but useful detail: if you change a filter or period while the previous request is still loading, the old request is cancelled, so stale numbers won’t land on screen over the new ones.
Finer role permissions
Permissions in Done were built around fields: which role sees and edits which fields. In 1.2.0 action permissions joined them: for a global role you can separately allow or deny a specific action. The setting is stored on its own and, as before, checked on the server on every request, not just used to hide a button in the interface.
What we fixed
Changing a dynamic field’s type no longer spawns duplicate records, and deleting dynamic fields stopped causing failures. We also cleaned up how the pinned heading behaves in the statistics preview, along with various small edge cases.