- Support for Nextcloud 30
- Updated JS dependencies and adjusted build scripts
- Adjustments to global CSS changes in Nextcloud 30
- Statistics graphs and reports should now respect the current timezone as determined by the user's browser and should not skip any days anymore (#122)
- Basic support for Nextcloud 29, manually checked
- Styling updates, matching Nextcloud 29
- Reports: Minor UX improvements
- Nextcloud 28.0.4 dependency manager could not find JS file referenced via JSON file. It is unclear why this stopped working in a minor version update (#163)
- Legacy Sync API did not work when using PostgreSQL (#150)
- Clients could not be edited after being shared with a group the author was a member of (#152)
- Improve French translation (#155) (contributed by @punkyard)
- Sharing Dialog: Show "(Group)" behind search results that are groups to make it easier to discern them from users
I'm really sorry about these frequent, tiny releases. They are important bugfixes and I hope this to be the last one for now. Thanks for your patience
- Another fix for the Sync API used by the Android app: Some objects may not be present in the sync response due to erroneuos re-use of a single QueryBuilder instance, unintentionally producing conflicting query conditions (#150)
- Fix Android app stops loading data: Revert use of named parameter for providing list of applicable commits to SQL for the legacy sync API (#148)
- Add sharing with Nextcloud user groups (#93 and #141) (contributed by @DavidProdinger)
- Run (manual) tests for Nextcloud 28 (RC2) and bump compatibility (autotest pending docker-container release)
- Add Italian localization (thanks to @Fabiettus)
- Update to comply with Autoloader requirements (by @SpaceCafe, #130)
- Update JS dependencies
- Run tests for Nextcloud 26 and bump compatibility to Nextcloud 26
- Update JS dependencies
- Migrate to QueryBuilder for all SQL queries to restore Nextcloud 26 compatibility (#32 and #117)
- Quick Add: Date fields are able to open brower's built-in mini calendar again (#115)
- Quick Add: Fix duration popover closing when using the mouse to open it in Chrome (issue #114)
- Fix buttons on Reports page have padding for icon, but no icon is shown (issue #94)
- Fix crash when running Nextcloud on top of PostgreSQL due to missing space character in query (issue #100)
- Fix broken print stylesheet in NC25 due to massive upstream styling changes (issue #109)
- Choose between setting duration or start and end time when creating & editing time entries w/ automatic conversion (thanks to @devattendant, PR !99)
- Dates should now be displayed in the user's browser's current timezone
- Simple end-to-end test for Quick Add widget and duration/start/end conversion
- Maintenance: Update a bunch of JS dependencies
- Add Russian localization (thanks to @lonelywoolf)
- SVG Favicon was re-generated (thanks to @devattendant)
- Add transform step for SCSS, since it got removed from NC25
- Fix input fields border style for NC25 on reports page
- Remove border from file input for NC25
- Fix Cypress tests for NC25 failing due to
position: fixed
andoverflow: hidden
breaking Cypress' scrolling - Fix user filter showing on time entries list even though no entries were shared
- Fix warning when checkmark status is not defined on a time entry
- Run tests for Nextcloud 25 and bump compatibility to Nextcloud 25
- Dashboard / Quick Add: Rework combo-selector for client, project and taks – I hope you like it, happy to get feedback.
- Dashboard / Quick Add: Add autosuggest for previous notes for repeated time entries to prefill details
- Maintenance: Update some JS dependencies
- Previously missing colors for select inputs have been themed
- Add overview of all projects, tasks, and latest time entries when you select the respective menu entries without selecting a client first
- Dashboard: Add ability to see latest time entries by other people in clients that you shared and enable to filter them by person
- Reports: Add ability to filter reports by person who created the time entries
- Bugfix: The list of clients, projects, and tasks that appears when you select the respective menu items didn't show items shared with you
- Attempt to avoid more layout-shifts on Dashboard when JS has mounted components
- Tools/Import:
- Add comma as a delimiter
- Improve test coverage
- Improve error handling, especially if file does not contain entities
- Show messages in a dialog
- Run tests for Nextcloud 24 and bump compatibility to Nextcloud 24
- Update JS dependencies
- Add basic client sharing feature with support for sharing clients and all associated projects and tasks (issues #65 and possibly #1)
- Allows users you shared the client with to create and edit time entries in tasks you created
- Only you can see everyone's time entries (also in reports), everyone else only sees their entries
- The sharing feature is currently not supported in the Android app and/or REST API
- Maintenance: Update JS dependencies
- Bugfix: Some variables weren't checked properly before accessing them, causing warnings to be logged (issue #72)
- Bugfix: Import UI will now create a commit and show the success message even if importing to an empty database
- Bugfix: Navigation button will stay visible and interactive when navigating client-side (issue #70)
- Add feature-preview of import functionality for clients, projects and tasks from a CSV file
- Add Chinese simplified localization (thanks to @lakehy)
- Maintenance: Bump compatibility to Nextcloud 23
- Maintenance: Update JS dependencies
- Bugfix: Filter selects – Add missing color customisations for dark-mode (issue #59)
- Bugfix: Reports – Improve completeness of reports at the beginning and end of an interval (issue #58)
If you experience sync issues with the Android app by @joleaf, please install this update at your earliest convenience and restart the Android app to clear the sync queue. It will most likely resolve those issues. Details below.
- Bugfix: Don't assume that clients can handle sync conflicts (issue #53).
This is sort of a regression, caused by #48 being fixed. Previously the bug described in #48 prevented the API to ask for client-side conflict handling, making the Android app work as it did.
Since there's no API documentation and the API changed because of this bugfix, the Android app is not to blame for this. This release makes sync behavior configurable, defaulting to the sync behavior previous to 0.2.5. I've opened an issue in the app's repository to work on adjusting to the different API signature and getting conflict handling implemented in the Android app. If you've left a negative review in the PlayStore based on this issue, please consider updating it, if this release fixes the issue for you. If not, please open an issue in this repository or the Android app's repository.
Note: If you've synced your Android app (currently in beta) with release 0.2.5 you might experience duplicate objects. This release contains a database migration that will fix these duplicate objects and prevent them in the future, however you might need to sort out manually which ones you'd like to keep and which ones to delete. Very sorry for the inconvenience!
As an aside: I'm actively working on setting up a test pipeline for API integrations that will catch these sort of errors in the future. After all, this is a good reminder that this app, as well as the Android app, are still in beta state.
- Bugfix: Make sure to round outputs of totals in Statistics module (issue #52)
- Add Czech localization (thanks to @p-bo)
- Bugfix: Attempt to fix switched params to
in_array
method instoragehelper.php
when checking desired commit for existence
- Bugfixes
- Reports: More detailed filters are now prioritized over parent filters. Example: Filtering for a specific project overrides any client filters set. This might not be ideal, but at least it delivers more predictable results for most use-cases (issue #33)
- Reports: The graph is now respecting configured filters (issue #37)
- Dashboard: The statistics module is looking for time entries on the last day of a week again (issue #35)
- Bump compatibility to Nextcloud 22
- Remove
database.xml
and generate migration files instead
- Update Portuguese translation (I forgot to include some updated strings 🙈)
- Update Portuguese translation (thanks to @vascocb)
- Fix wrong internal version number
- Add basic reporting feature with client, project, task, status and timerange filters and a simple graph
- Add CSV export functionality for reports
- Add basic print stylesheet for reports
- Add Portuguese translation (thanks to @vascocb)
- Clean up some older PHP code and add more type information (still tons to do, though...)
- Respect locale (short locale) when formatting dates and times in JS / Svelte components
- Bump compatibility to Nextcloud 21
- Fix missing localization of time entry start dates (#25)
- Add link to beta Android app (thanks to @joleaf)
- Update JS dependencies
- Add
paymentStatus
to sync REST API response (thanks to @joleaf)
- Fix syntax error in French translation file (thanks for the fix @Thovi98)
- Add French translation (thanks to @Thovi98)
- Update JS dependencies
- Allow time entries in steps of
0.01
instead of0.25
- Fix missing *.svelte views for server-side-rendering in app release
- Improve Dark Mode by using Nextcloud's CSS variables instead of fixed colors
- Redirect to login when session times out and server responds with 401
- Fix sorting of "Latest entries" on Dashboard page
- Fix issue with
LOWER
SQL function and backticks interpreted as timestamp (issue #3)
- Navigation – Fix icon urls
- Fix case of class filename
- Initial release.
- Featureset:
- Organize time entries based on tasks, projects and clients.
- Quickly record a time entry for your latest tasks.
- Check or uncheck a time entry (e.g. to save whether you've billed it).
- Get summaries of your time spent on tasks, projects and clients.
- Take a glance at simple, but useful statistics.