PTO Tracker - Releases

← App details

Nextcloud 33

PTO Tracker 1.1.0
Release Details
UpdatedMarch 26, 2026, 7:01 p.m.
Changelog

Release Notes

Nextcloud 32 compatibility release - Now supports both NC32 and NC33!

Added

  • Nextcloud 32 support (min-version: 32, max-version: 33)
  • Better error messages for request validation failures
  • Graceful handling of permission checks for non-admin users

Fixed

  • PolicyAssignment component now handles different API response formats between NC32/NC33
  • Request submission now shows specific error messages (e.g. "Insufficient PTO balance") instead of generic "Bad request"
  • Removed console 403 errors when non-admin users load the app

Changed

  • Defensive coding for API responses to ensure compatibility across NC versions
Licenses MIT License
Certificate-----BEGIN CERTIFICATE-----
MIID/jCCAuYCAhMdMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMzI0MDc1MjEyWhcNMzYwNjI5MDc1MjEyWjAOMQwwCgYD
VQQDDANwdG8wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCuiiWDa4yK
UHEzH9BeiJnzn0SJU7bDtJjNhUwAcXtF7HRoEAF6FWMWjj56a0j1aXTYXsg/F5S7
2bXHHGoNmPGBFHefPgr5I7UaTSy4w7QJ+ydY6rFbm9MtXu+UuETJ3m1vK5f6B8f+
Pqjgc4sJkO5jlOabncQP52ufrQF2XqaEMADjdKIMNxArfxMxRq5D53PCltex8wdl
7/oQcpXcYfLeuxpTtBd66ptXDDgQTP/9SK8Ki0m+RU3zNSnlVmdrLJJvf4PzUnc9
++uM+WNEpBCZEAbflAtFFxZY7f/SM1HRXy/cZva8qHy/txbAkgEiFYeFtgj5Jg+7
NX2lsLIBF5VzbEksCWDqL/FPoyKRl5l2sMr0cHLOt1+3WEfCZ9GhpEGbisPnvLkV
ZHT274L+6zifoA6Yg2fUPFIuad8ILzNLZHFiQpPWSUy315uYZEX8jnLobZQQDPbZ
VSTd+R8+DhWdAMN9X84S31iphf8KwpuylyA6MoZJ/fJBdDkWornKuWF8dTOAXigu
PrQM1UCwfKJtB3KWJpca/UWvDEAnsWwND0/dqCtftQM9iwk3GQOzaZxpFnqTJ8X+
4+d6cgt4z5Kmw09IlMSv1jK/gPi/uSK+vQg7/4Y2jC5z2ryOW/mbwfue9XN85kfJ
BjuMRHgdPE1aSuU6irBMmz0veePT/DlAzwIDAQABMA0GCSqGSIb3DQEBCwUAA4IB
AQA+Dr5jf6e50mx0JxEsCENci30jJVrZP0qvO8TJrq1pc3yTdBn6fms++XQ/LCmb
AShUU6NM+M8N6buYqBqUMcKXtJbs/H8q/54437TnO7em2xwqPT5O3T1boROh0Awt
dMxdbqqbPEKgdAfrzk5K6pgl4wOLAM8rYycoQQib+oEdp9HPSdrUMcA2I+r2jImC
rtxGCVa8Oz8K+FgqBiRqUfkiXFiMXSCKsJLOa4QD1qDdZkmTJ0ec6Hkrls/akGB4
oEDJmPQpVflujcclwqjyFwDE4+rldd8zwfC5j83KzQPVKOjHLHov2OdARbqnzKl/
Wjlk5k+aVFjrmYGMPIbdafmS
-----END CERTIFICATE-----
Signatureq+f1XZNGSQHardl9NOrhaG+6hkY0uyrdscoOfl8xQQZTlnRwEyCDqI/rliCa/XigrvffRYRKTXImZofLrXmP35QemmeZIRnd5MM02XguFI0SwWCQ1IUe6NoZxnvpdKM1vazvEBBUckANHC0wib+JchKkPioJVuyPIgOkP7rrY7IcuofhGocAkn3a22CBrskYViTVndAKC5TTZ0qmzYK7tPw5eo1NpEnqgEdGsjWe7e9xAhPYEhbT0sT86ACUE27UPOZh5XvN5qNKjkwRFgBU8fDmonBdaAlvjvDH80hE4egejoKT0+8j6nMwLPOUtEzrNgRQixrHy4+HuPYSR3u3DRrzjHlr6yLxYavNxWjXLIIa+vMWWSiVZv/7E6vYOMOybSTEC57pLI1Ba6xf9lbEJbottAjWzUi4jJe8ttt3IUl/AmETlXuP6ZOy9x/6sD6hOXwWYhOXzHrp+yG9gUwZmmj3BVD09A4Q5MW1PR50hIX2s32MqwnCv6GYSibkt9+GKXsCk6hk3YDL1/3DqKSjmOKL0JZ9YtTfbSQcYcOfknjyCr0leiQRdUoPIbeAmVMfbj/yLSq6TGZOVfwJmbdYHInKSUfMG/dG32uxuZSQYuFHaxjdYSIW1vsgUBJhUlb31S2MV9TqHNP8xQCGwYR3pZrvvPHaYG8OWBHZjRD1NGs=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
PTO Tracker 1.0.0
Release Details
UpdatedMarch 25, 2026, 4:29 a.m.
Changelog

Release Notes

First stable release! Fully tested and working on Nextcloud 33.

Added

  • Complete Nextcloud 33 compatibility
  • Flexible PTO policies (unlimited, accrual-based, fixed annual)
  • Manager approval workflow
  • Native Nextcloud notifications
  • Calendar integration
  • Admin policy management UI
  • Access control per user
  • Dark mode support
  • Multiple leave types

Changed

  • Migrated to Nextcloud 33 APIs
  • Updated Calendar integration for NC33
  • Removed deprecated API calls
  • Minimum requirements: NC33+, PHP 8.2+

Fixed

  • Calendar event creation on NC33
  • Logger calls updated for NC33 compatibility
  • Template script/style loading
  • All features fully functional

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog and this project adheres to Semantic Versioning.

765692d (Release v1.0.0 - First Stable Release)

Licenses MIT License
Certificate-----BEGIN CERTIFICATE-----
MIID/jCCAuYCAhMdMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMzI0MDc1MjEyWhcNMzYwNjI5MDc1MjEyWjAOMQwwCgYD
VQQDDANwdG8wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCuiiWDa4yK
UHEzH9BeiJnzn0SJU7bDtJjNhUwAcXtF7HRoEAF6FWMWjj56a0j1aXTYXsg/F5S7
2bXHHGoNmPGBFHefPgr5I7UaTSy4w7QJ+ydY6rFbm9MtXu+UuETJ3m1vK5f6B8f+
Pqjgc4sJkO5jlOabncQP52ufrQF2XqaEMADjdKIMNxArfxMxRq5D53PCltex8wdl
7/oQcpXcYfLeuxpTtBd66ptXDDgQTP/9SK8Ki0m+RU3zNSnlVmdrLJJvf4PzUnc9
++uM+WNEpBCZEAbflAtFFxZY7f/SM1HRXy/cZva8qHy/txbAkgEiFYeFtgj5Jg+7
NX2lsLIBF5VzbEksCWDqL/FPoyKRl5l2sMr0cHLOt1+3WEfCZ9GhpEGbisPnvLkV
ZHT274L+6zifoA6Yg2fUPFIuad8ILzNLZHFiQpPWSUy315uYZEX8jnLobZQQDPbZ
VSTd+R8+DhWdAMN9X84S31iphf8KwpuylyA6MoZJ/fJBdDkWornKuWF8dTOAXigu
PrQM1UCwfKJtB3KWJpca/UWvDEAnsWwND0/dqCtftQM9iwk3GQOzaZxpFnqTJ8X+
4+d6cgt4z5Kmw09IlMSv1jK/gPi/uSK+vQg7/4Y2jC5z2ryOW/mbwfue9XN85kfJ
BjuMRHgdPE1aSuU6irBMmz0veePT/DlAzwIDAQABMA0GCSqGSIb3DQEBCwUAA4IB
AQA+Dr5jf6e50mx0JxEsCENci30jJVrZP0qvO8TJrq1pc3yTdBn6fms++XQ/LCmb
AShUU6NM+M8N6buYqBqUMcKXtJbs/H8q/54437TnO7em2xwqPT5O3T1boROh0Awt
dMxdbqqbPEKgdAfrzk5K6pgl4wOLAM8rYycoQQib+oEdp9HPSdrUMcA2I+r2jImC
rtxGCVa8Oz8K+FgqBiRqUfkiXFiMXSCKsJLOa4QD1qDdZkmTJ0ec6Hkrls/akGB4
oEDJmPQpVflujcclwqjyFwDE4+rldd8zwfC5j83KzQPVKOjHLHov2OdARbqnzKl/
Wjlk5k+aVFjrmYGMPIbdafmS
-----END CERTIFICATE-----
Signaturemb9ahzjtu6YN9G/fJiXQcjcJXkHLi0yRc6eD4hWBSBU+lMG9lYTQTWyVLMOo8hoU
Es309LgnEFoKpMOQtXQfOlTl39kEncUkbWvPKa1Em3o3MfsK8Yc3JtDeCdHh4F9K
Psanp+6JvfqzQ5WptYovDj3agpHjRkTtB7eZUbzw6Q9wZgPW9Lf3acl6+Q16/3L5
1YLmdrjwtQ9dUV3CIQdv9UZZj9Y1an0Fi0bBgsCnYBFWU4TBh2mk/Zld9erzYCvn
B5/3StJ/LacyFf9nuQAComgO6OWfYdJ8d5SOXMIJtf62FHN/y8cdLQ3tSKM8+HzJ
y/6C9qlCcyDVPbbwqZww8aQ5XgGKckglsYEdOg5BCD59r6m86E7PnJL1R73d9jah
F4bpTogZ4sSLjrNfhfZ7Z/BdId8ORtrZgub+gEC8srjcurR5N5FOrOL89jhZeRV+
aOuCNUTumeA2E33S30h8p3e1WVDiM9P9oZR7W9HZ2YUkXP9lnGm1zkTccDjPLzj0
Z+ql1BBUdngdlPMYf+a+G6juPlGdiMfpuZoPswbS6xYeghL01TBFqQWzf4TT/6dG
sFr2M/Q5FZe3AvIlKFMVHxd2G1phxkEOE7uOgF0rUyCJNV6ZRMyyoM+Dhw2g+pK+
AVv3N+n2agVvYOF//U5bkYanen9Hlf7uaKgzdbDoU4s=
Signature digestsha512
Dependencies
Required Nextcloud versions >=33.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0

Nextcloud 32

PTO Tracker 1.1.0
Release Details
UpdatedMarch 26, 2026, 7:01 p.m.
Changelog

Release Notes

Nextcloud 32 compatibility release - Now supports both NC32 and NC33!

Added

  • Nextcloud 32 support (min-version: 32, max-version: 33)
  • Better error messages for request validation failures
  • Graceful handling of permission checks for non-admin users

Fixed

  • PolicyAssignment component now handles different API response formats between NC32/NC33
  • Request submission now shows specific error messages (e.g. "Insufficient PTO balance") instead of generic "Bad request"
  • Removed console 403 errors when non-admin users load the app

Changed

  • Defensive coding for API responses to ensure compatibility across NC versions
Licenses MIT License
Certificate-----BEGIN CERTIFICATE-----
MIID/jCCAuYCAhMdMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMzI0MDc1MjEyWhcNMzYwNjI5MDc1MjEyWjAOMQwwCgYD
VQQDDANwdG8wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCuiiWDa4yK
UHEzH9BeiJnzn0SJU7bDtJjNhUwAcXtF7HRoEAF6FWMWjj56a0j1aXTYXsg/F5S7
2bXHHGoNmPGBFHefPgr5I7UaTSy4w7QJ+ydY6rFbm9MtXu+UuETJ3m1vK5f6B8f+
Pqjgc4sJkO5jlOabncQP52ufrQF2XqaEMADjdKIMNxArfxMxRq5D53PCltex8wdl
7/oQcpXcYfLeuxpTtBd66ptXDDgQTP/9SK8Ki0m+RU3zNSnlVmdrLJJvf4PzUnc9
++uM+WNEpBCZEAbflAtFFxZY7f/SM1HRXy/cZva8qHy/txbAkgEiFYeFtgj5Jg+7
NX2lsLIBF5VzbEksCWDqL/FPoyKRl5l2sMr0cHLOt1+3WEfCZ9GhpEGbisPnvLkV
ZHT274L+6zifoA6Yg2fUPFIuad8ILzNLZHFiQpPWSUy315uYZEX8jnLobZQQDPbZ
VSTd+R8+DhWdAMN9X84S31iphf8KwpuylyA6MoZJ/fJBdDkWornKuWF8dTOAXigu
PrQM1UCwfKJtB3KWJpca/UWvDEAnsWwND0/dqCtftQM9iwk3GQOzaZxpFnqTJ8X+
4+d6cgt4z5Kmw09IlMSv1jK/gPi/uSK+vQg7/4Y2jC5z2ryOW/mbwfue9XN85kfJ
BjuMRHgdPE1aSuU6irBMmz0veePT/DlAzwIDAQABMA0GCSqGSIb3DQEBCwUAA4IB
AQA+Dr5jf6e50mx0JxEsCENci30jJVrZP0qvO8TJrq1pc3yTdBn6fms++XQ/LCmb
AShUU6NM+M8N6buYqBqUMcKXtJbs/H8q/54437TnO7em2xwqPT5O3T1boROh0Awt
dMxdbqqbPEKgdAfrzk5K6pgl4wOLAM8rYycoQQib+oEdp9HPSdrUMcA2I+r2jImC
rtxGCVa8Oz8K+FgqBiRqUfkiXFiMXSCKsJLOa4QD1qDdZkmTJ0ec6Hkrls/akGB4
oEDJmPQpVflujcclwqjyFwDE4+rldd8zwfC5j83KzQPVKOjHLHov2OdARbqnzKl/
Wjlk5k+aVFjrmYGMPIbdafmS
-----END CERTIFICATE-----
Signatureq+f1XZNGSQHardl9NOrhaG+6hkY0uyrdscoOfl8xQQZTlnRwEyCDqI/rliCa/XigrvffRYRKTXImZofLrXmP35QemmeZIRnd5MM02XguFI0SwWCQ1IUe6NoZxnvpdKM1vazvEBBUckANHC0wib+JchKkPioJVuyPIgOkP7rrY7IcuofhGocAkn3a22CBrskYViTVndAKC5TTZ0qmzYK7tPw5eo1NpEnqgEdGsjWe7e9xAhPYEhbT0sT86ACUE27UPOZh5XvN5qNKjkwRFgBU8fDmonBdaAlvjvDH80hE4egejoKT0+8j6nMwLPOUtEzrNgRQixrHy4+HuPYSR3u3DRrzjHlr6yLxYavNxWjXLIIa+vMWWSiVZv/7E6vYOMOybSTEC57pLI1Ba6xf9lbEJbottAjWzUi4jJe8ttt3IUl/AmETlXuP6ZOy9x/6sD6hOXwWYhOXzHrp+yG9gUwZmmj3BVD09A4Q5MW1PR50hIX2s32MqwnCv6GYSibkt9+GKXsCk6hk3YDL1/3DqKSjmOKL0JZ9YtTfbSQcYcOfknjyCr0leiQRdUoPIbeAmVMfbj/yLSq6TGZOVfwJmbdYHInKSUfMG/dG32uxuZSQYuFHaxjdYSIW1vsgUBJhUlb31S2MV9TqHNP8xQCGwYR3pZrvvPHaYG8OWBHZjRD1NGs=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0

Nextcloud 28

PTO Tracker 0.5.6
Release Details
UpdatedMarch 24, 2026, 3:17 p.m.
Changelog

Fixed

  • Policy Assignment Fully Working
  • Routes file properly deployed (removePolicy route was missing)
  • Controller method deployed (removePolicy() was missing)
  • Service method deployed (deleteBalance() was missing)
  • Removed debug console.log statements

Changed

  • Admins can now assign/remove policies from users
  • Save button persists changes correctly
  • Success messages display after save
  • All backend methods properly deployed

Technical

  • Added POST /api/v1/balances/remove endpoint
  • BalanceController::removePolicy() - admin-only
  • BalanceService::deleteBalance() - deletes balance record
  • PolicyAssignment component processes pending removals
Licenses MIT License
Certificate-----BEGIN CERTIFICATE-----
MIID/jCCAuYCAhMdMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMzI0MDc1MjEyWhcNMzYwNjI5MDc1MjEyWjAOMQwwCgYD
VQQDDANwdG8wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCuiiWDa4yK
UHEzH9BeiJnzn0SJU7bDtJjNhUwAcXtF7HRoEAF6FWMWjj56a0j1aXTYXsg/F5S7
2bXHHGoNmPGBFHefPgr5I7UaTSy4w7QJ+ydY6rFbm9MtXu+UuETJ3m1vK5f6B8f+
Pqjgc4sJkO5jlOabncQP52ufrQF2XqaEMADjdKIMNxArfxMxRq5D53PCltex8wdl
7/oQcpXcYfLeuxpTtBd66ptXDDgQTP/9SK8Ki0m+RU3zNSnlVmdrLJJvf4PzUnc9
++uM+WNEpBCZEAbflAtFFxZY7f/SM1HRXy/cZva8qHy/txbAkgEiFYeFtgj5Jg+7
NX2lsLIBF5VzbEksCWDqL/FPoyKRl5l2sMr0cHLOt1+3WEfCZ9GhpEGbisPnvLkV
ZHT274L+6zifoA6Yg2fUPFIuad8ILzNLZHFiQpPWSUy315uYZEX8jnLobZQQDPbZ
VSTd+R8+DhWdAMN9X84S31iphf8KwpuylyA6MoZJ/fJBdDkWornKuWF8dTOAXigu
PrQM1UCwfKJtB3KWJpca/UWvDEAnsWwND0/dqCtftQM9iwk3GQOzaZxpFnqTJ8X+
4+d6cgt4z5Kmw09IlMSv1jK/gPi/uSK+vQg7/4Y2jC5z2ryOW/mbwfue9XN85kfJ
BjuMRHgdPE1aSuU6irBMmz0veePT/DlAzwIDAQABMA0GCSqGSIb3DQEBCwUAA4IB
AQA+Dr5jf6e50mx0JxEsCENci30jJVrZP0qvO8TJrq1pc3yTdBn6fms++XQ/LCmb
AShUU6NM+M8N6buYqBqUMcKXtJbs/H8q/54437TnO7em2xwqPT5O3T1boROh0Awt
dMxdbqqbPEKgdAfrzk5K6pgl4wOLAM8rYycoQQib+oEdp9HPSdrUMcA2I+r2jImC
rtxGCVa8Oz8K+FgqBiRqUfkiXFiMXSCKsJLOa4QD1qDdZkmTJ0ec6Hkrls/akGB4
oEDJmPQpVflujcclwqjyFwDE4+rldd8zwfC5j83KzQPVKOjHLHov2OdARbqnzKl/
Wjlk5k+aVFjrmYGMPIbdafmS
-----END CERTIFICATE-----
SignatureBDgMysbe9rq0DM8NMbVulth+zDqhwirZGNmtKmeQfLD+JJ5fXyeCya4yNCXVa8zcr624lr6AGFsGyCPvMVtV8vV+7PClUi6mH6+8aWaG0kzMKN0t1oPOq/siIgOVLAFo1aPQlHIljQbJVMhYXN+AWQhGAtIC9Ho0vjwGc6KtA07JvobUJHT6aM4OoLw8XGTTkqaYF191LzAHQ5BC1MCZxUnfEHJWpMwnGQA4s+gEPG+SVt81ufvT/OxixkPh/MWltqEs1gt1hIULHW4yDmJMnXU/8TwR0YvfMnEs5MqXL2VSZg3n4hgKs1PUO6djMbvxnRxwX8w37zvlA9WZ/L10VOQQp41PRzlDhf6ic7da8ZI5n6AO6DSSDdzVwlQuF9Oi1gC+ZKpGod2UNsLJUrZ/r5NpKHUcpWG6HTHG8nl4ANyVf57JlJRgsKQ7ri8MC+QGvF6JgG46e7a0nfTkU7Nj/jutTiXFNjyKQ9EkzQxH53pJLLfKB1aNHjOgy8tZJoHNhrf3ixIWHAy15isBlBHcPyV6SVS+2pWMg6XkRWPWF08EkwK3ewAceOAkGvgjF0YTblH9LLVvQC5noJMwehYpsfAD119ogE8yCsnm/pZUTlLkBzYSLzB6f2bLKdymYdOs+INpx1YzpYMvJTAgrHXvf332GFEw6nEt1FwGHvItUiQ=
Signature digestsha512
Dependencies
Required Nextcloud versions >=25.0.0,<29.0.0
Minimum Integer bits32
PHP>=8.0.0

Nextcloud 27

PTO Tracker 0.5.6
Release Details
UpdatedMarch 24, 2026, 3:17 p.m.
Changelog

Fixed

  • Policy Assignment Fully Working
  • Routes file properly deployed (removePolicy route was missing)
  • Controller method deployed (removePolicy() was missing)
  • Service method deployed (deleteBalance() was missing)
  • Removed debug console.log statements

Changed

  • Admins can now assign/remove policies from users
  • Save button persists changes correctly
  • Success messages display after save
  • All backend methods properly deployed

Technical

  • Added POST /api/v1/balances/remove endpoint
  • BalanceController::removePolicy() - admin-only
  • BalanceService::deleteBalance() - deletes balance record
  • PolicyAssignment component processes pending removals
Licenses MIT License
Certificate-----BEGIN CERTIFICATE-----
MIID/jCCAuYCAhMdMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMzI0MDc1MjEyWhcNMzYwNjI5MDc1MjEyWjAOMQwwCgYD
VQQDDANwdG8wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCuiiWDa4yK
UHEzH9BeiJnzn0SJU7bDtJjNhUwAcXtF7HRoEAF6FWMWjj56a0j1aXTYXsg/F5S7
2bXHHGoNmPGBFHefPgr5I7UaTSy4w7QJ+ydY6rFbm9MtXu+UuETJ3m1vK5f6B8f+
Pqjgc4sJkO5jlOabncQP52ufrQF2XqaEMADjdKIMNxArfxMxRq5D53PCltex8wdl
7/oQcpXcYfLeuxpTtBd66ptXDDgQTP/9SK8Ki0m+RU3zNSnlVmdrLJJvf4PzUnc9
++uM+WNEpBCZEAbflAtFFxZY7f/SM1HRXy/cZva8qHy/txbAkgEiFYeFtgj5Jg+7
NX2lsLIBF5VzbEksCWDqL/FPoyKRl5l2sMr0cHLOt1+3WEfCZ9GhpEGbisPnvLkV
ZHT274L+6zifoA6Yg2fUPFIuad8ILzNLZHFiQpPWSUy315uYZEX8jnLobZQQDPbZ
VSTd+R8+DhWdAMN9X84S31iphf8KwpuylyA6MoZJ/fJBdDkWornKuWF8dTOAXigu
PrQM1UCwfKJtB3KWJpca/UWvDEAnsWwND0/dqCtftQM9iwk3GQOzaZxpFnqTJ8X+
4+d6cgt4z5Kmw09IlMSv1jK/gPi/uSK+vQg7/4Y2jC5z2ryOW/mbwfue9XN85kfJ
BjuMRHgdPE1aSuU6irBMmz0veePT/DlAzwIDAQABMA0GCSqGSIb3DQEBCwUAA4IB
AQA+Dr5jf6e50mx0JxEsCENci30jJVrZP0qvO8TJrq1pc3yTdBn6fms++XQ/LCmb
AShUU6NM+M8N6buYqBqUMcKXtJbs/H8q/54437TnO7em2xwqPT5O3T1boROh0Awt
dMxdbqqbPEKgdAfrzk5K6pgl4wOLAM8rYycoQQib+oEdp9HPSdrUMcA2I+r2jImC
rtxGCVa8Oz8K+FgqBiRqUfkiXFiMXSCKsJLOa4QD1qDdZkmTJ0ec6Hkrls/akGB4
oEDJmPQpVflujcclwqjyFwDE4+rldd8zwfC5j83KzQPVKOjHLHov2OdARbqnzKl/
Wjlk5k+aVFjrmYGMPIbdafmS
-----END CERTIFICATE-----
SignatureBDgMysbe9rq0DM8NMbVulth+zDqhwirZGNmtKmeQfLD+JJ5fXyeCya4yNCXVa8zcr624lr6AGFsGyCPvMVtV8vV+7PClUi6mH6+8aWaG0kzMKN0t1oPOq/siIgOVLAFo1aPQlHIljQbJVMhYXN+AWQhGAtIC9Ho0vjwGc6KtA07JvobUJHT6aM4OoLw8XGTTkqaYF191LzAHQ5BC1MCZxUnfEHJWpMwnGQA4s+gEPG+SVt81ufvT/OxixkPh/MWltqEs1gt1hIULHW4yDmJMnXU/8TwR0YvfMnEs5MqXL2VSZg3n4hgKs1PUO6djMbvxnRxwX8w37zvlA9WZ/L10VOQQp41PRzlDhf6ic7da8ZI5n6AO6DSSDdzVwlQuF9Oi1gC+ZKpGod2UNsLJUrZ/r5NpKHUcpWG6HTHG8nl4ANyVf57JlJRgsKQ7ri8MC+QGvF6JgG46e7a0nfTkU7Nj/jutTiXFNjyKQ9EkzQxH53pJLLfKB1aNHjOgy8tZJoHNhrf3ixIWHAy15isBlBHcPyV6SVS+2pWMg6XkRWPWF08EkwK3ewAceOAkGvgjF0YTblH9LLVvQC5noJMwehYpsfAD119ogE8yCsnm/pZUTlLkBzYSLzB6f2bLKdymYdOs+INpx1YzpYMvJTAgrHXvf332GFEw6nEt1FwGHvItUiQ=
Signature digestsha512
Dependencies
Required Nextcloud versions >=25.0.0,<29.0.0
Minimum Integer bits32
PHP>=8.0.0

Nextcloud 26

PTO Tracker 0.5.6
Release Details
UpdatedMarch 24, 2026, 3:17 p.m.
Changelog

Fixed

  • Policy Assignment Fully Working
  • Routes file properly deployed (removePolicy route was missing)
  • Controller method deployed (removePolicy() was missing)
  • Service method deployed (deleteBalance() was missing)
  • Removed debug console.log statements

Changed

  • Admins can now assign/remove policies from users
  • Save button persists changes correctly
  • Success messages display after save
  • All backend methods properly deployed

Technical

  • Added POST /api/v1/balances/remove endpoint
  • BalanceController::removePolicy() - admin-only
  • BalanceService::deleteBalance() - deletes balance record
  • PolicyAssignment component processes pending removals
Licenses MIT License
Certificate-----BEGIN CERTIFICATE-----
MIID/jCCAuYCAhMdMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMzI0MDc1MjEyWhcNMzYwNjI5MDc1MjEyWjAOMQwwCgYD
VQQDDANwdG8wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCuiiWDa4yK
UHEzH9BeiJnzn0SJU7bDtJjNhUwAcXtF7HRoEAF6FWMWjj56a0j1aXTYXsg/F5S7
2bXHHGoNmPGBFHefPgr5I7UaTSy4w7QJ+ydY6rFbm9MtXu+UuETJ3m1vK5f6B8f+
Pqjgc4sJkO5jlOabncQP52ufrQF2XqaEMADjdKIMNxArfxMxRq5D53PCltex8wdl
7/oQcpXcYfLeuxpTtBd66ptXDDgQTP/9SK8Ki0m+RU3zNSnlVmdrLJJvf4PzUnc9
++uM+WNEpBCZEAbflAtFFxZY7f/SM1HRXy/cZva8qHy/txbAkgEiFYeFtgj5Jg+7
NX2lsLIBF5VzbEksCWDqL/FPoyKRl5l2sMr0cHLOt1+3WEfCZ9GhpEGbisPnvLkV
ZHT274L+6zifoA6Yg2fUPFIuad8ILzNLZHFiQpPWSUy315uYZEX8jnLobZQQDPbZ
VSTd+R8+DhWdAMN9X84S31iphf8KwpuylyA6MoZJ/fJBdDkWornKuWF8dTOAXigu
PrQM1UCwfKJtB3KWJpca/UWvDEAnsWwND0/dqCtftQM9iwk3GQOzaZxpFnqTJ8X+
4+d6cgt4z5Kmw09IlMSv1jK/gPi/uSK+vQg7/4Y2jC5z2ryOW/mbwfue9XN85kfJ
BjuMRHgdPE1aSuU6irBMmz0veePT/DlAzwIDAQABMA0GCSqGSIb3DQEBCwUAA4IB
AQA+Dr5jf6e50mx0JxEsCENci30jJVrZP0qvO8TJrq1pc3yTdBn6fms++XQ/LCmb
AShUU6NM+M8N6buYqBqUMcKXtJbs/H8q/54437TnO7em2xwqPT5O3T1boROh0Awt
dMxdbqqbPEKgdAfrzk5K6pgl4wOLAM8rYycoQQib+oEdp9HPSdrUMcA2I+r2jImC
rtxGCVa8Oz8K+FgqBiRqUfkiXFiMXSCKsJLOa4QD1qDdZkmTJ0ec6Hkrls/akGB4
oEDJmPQpVflujcclwqjyFwDE4+rldd8zwfC5j83KzQPVKOjHLHov2OdARbqnzKl/
Wjlk5k+aVFjrmYGMPIbdafmS
-----END CERTIFICATE-----
SignatureBDgMysbe9rq0DM8NMbVulth+zDqhwirZGNmtKmeQfLD+JJ5fXyeCya4yNCXVa8zcr624lr6AGFsGyCPvMVtV8vV+7PClUi6mH6+8aWaG0kzMKN0t1oPOq/siIgOVLAFo1aPQlHIljQbJVMhYXN+AWQhGAtIC9Ho0vjwGc6KtA07JvobUJHT6aM4OoLw8XGTTkqaYF191LzAHQ5BC1MCZxUnfEHJWpMwnGQA4s+gEPG+SVt81ufvT/OxixkPh/MWltqEs1gt1hIULHW4yDmJMnXU/8TwR0YvfMnEs5MqXL2VSZg3n4hgKs1PUO6djMbvxnRxwX8w37zvlA9WZ/L10VOQQp41PRzlDhf6ic7da8ZI5n6AO6DSSDdzVwlQuF9Oi1gC+ZKpGod2UNsLJUrZ/r5NpKHUcpWG6HTHG8nl4ANyVf57JlJRgsKQ7ri8MC+QGvF6JgG46e7a0nfTkU7Nj/jutTiXFNjyKQ9EkzQxH53pJLLfKB1aNHjOgy8tZJoHNhrf3ixIWHAy15isBlBHcPyV6SVS+2pWMg6XkRWPWF08EkwK3ewAceOAkGvgjF0YTblH9LLVvQC5noJMwehYpsfAD119ogE8yCsnm/pZUTlLkBzYSLzB6f2bLKdymYdOs+INpx1YzpYMvJTAgrHXvf332GFEw6nEt1FwGHvItUiQ=
Signature digestsha512
Dependencies
Required Nextcloud versions >=25.0.0,<29.0.0
Minimum Integer bits32
PHP>=8.0.0

Nextcloud 25

PTO Tracker 0.5.6
Release Details
UpdatedMarch 24, 2026, 3:17 p.m.
Changelog

Fixed

  • Policy Assignment Fully Working
  • Routes file properly deployed (removePolicy route was missing)
  • Controller method deployed (removePolicy() was missing)
  • Service method deployed (deleteBalance() was missing)
  • Removed debug console.log statements

Changed

  • Admins can now assign/remove policies from users
  • Save button persists changes correctly
  • Success messages display after save
  • All backend methods properly deployed

Technical

  • Added POST /api/v1/balances/remove endpoint
  • BalanceController::removePolicy() - admin-only
  • BalanceService::deleteBalance() - deletes balance record
  • PolicyAssignment component processes pending removals
Licenses MIT License
Certificate-----BEGIN CERTIFICATE-----
MIID/jCCAuYCAhMdMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMzI0MDc1MjEyWhcNMzYwNjI5MDc1MjEyWjAOMQwwCgYD
VQQDDANwdG8wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCuiiWDa4yK
UHEzH9BeiJnzn0SJU7bDtJjNhUwAcXtF7HRoEAF6FWMWjj56a0j1aXTYXsg/F5S7
2bXHHGoNmPGBFHefPgr5I7UaTSy4w7QJ+ydY6rFbm9MtXu+UuETJ3m1vK5f6B8f+
Pqjgc4sJkO5jlOabncQP52ufrQF2XqaEMADjdKIMNxArfxMxRq5D53PCltex8wdl
7/oQcpXcYfLeuxpTtBd66ptXDDgQTP/9SK8Ki0m+RU3zNSnlVmdrLJJvf4PzUnc9
++uM+WNEpBCZEAbflAtFFxZY7f/SM1HRXy/cZva8qHy/txbAkgEiFYeFtgj5Jg+7
NX2lsLIBF5VzbEksCWDqL/FPoyKRl5l2sMr0cHLOt1+3WEfCZ9GhpEGbisPnvLkV
ZHT274L+6zifoA6Yg2fUPFIuad8ILzNLZHFiQpPWSUy315uYZEX8jnLobZQQDPbZ
VSTd+R8+DhWdAMN9X84S31iphf8KwpuylyA6MoZJ/fJBdDkWornKuWF8dTOAXigu
PrQM1UCwfKJtB3KWJpca/UWvDEAnsWwND0/dqCtftQM9iwk3GQOzaZxpFnqTJ8X+
4+d6cgt4z5Kmw09IlMSv1jK/gPi/uSK+vQg7/4Y2jC5z2ryOW/mbwfue9XN85kfJ
BjuMRHgdPE1aSuU6irBMmz0veePT/DlAzwIDAQABMA0GCSqGSIb3DQEBCwUAA4IB
AQA+Dr5jf6e50mx0JxEsCENci30jJVrZP0qvO8TJrq1pc3yTdBn6fms++XQ/LCmb
AShUU6NM+M8N6buYqBqUMcKXtJbs/H8q/54437TnO7em2xwqPT5O3T1boROh0Awt
dMxdbqqbPEKgdAfrzk5K6pgl4wOLAM8rYycoQQib+oEdp9HPSdrUMcA2I+r2jImC
rtxGCVa8Oz8K+FgqBiRqUfkiXFiMXSCKsJLOa4QD1qDdZkmTJ0ec6Hkrls/akGB4
oEDJmPQpVflujcclwqjyFwDE4+rldd8zwfC5j83KzQPVKOjHLHov2OdARbqnzKl/
Wjlk5k+aVFjrmYGMPIbdafmS
-----END CERTIFICATE-----
SignatureBDgMysbe9rq0DM8NMbVulth+zDqhwirZGNmtKmeQfLD+JJ5fXyeCya4yNCXVa8zcr624lr6AGFsGyCPvMVtV8vV+7PClUi6mH6+8aWaG0kzMKN0t1oPOq/siIgOVLAFo1aPQlHIljQbJVMhYXN+AWQhGAtIC9Ho0vjwGc6KtA07JvobUJHT6aM4OoLw8XGTTkqaYF191LzAHQ5BC1MCZxUnfEHJWpMwnGQA4s+gEPG+SVt81ufvT/OxixkPh/MWltqEs1gt1hIULHW4yDmJMnXU/8TwR0YvfMnEs5MqXL2VSZg3n4hgKs1PUO6djMbvxnRxwX8w37zvlA9WZ/L10VOQQp41PRzlDhf6ic7da8ZI5n6AO6DSSDdzVwlQuF9Oi1gC+ZKpGod2UNsLJUrZ/r5NpKHUcpWG6HTHG8nl4ANyVf57JlJRgsKQ7ri8MC+QGvF6JgG46e7a0nfTkU7Nj/jutTiXFNjyKQ9EkzQxH53pJLLfKB1aNHjOgy8tZJoHNhrf3ixIWHAy15isBlBHcPyV6SVS+2pWMg6XkRWPWF08EkwK3ewAceOAkGvgjF0YTblH9LLVvQC5noJMwehYpsfAD119ogE8yCsnm/pZUTlLkBzYSLzB6f2bLKdymYdOs+INpx1YzpYMvJTAgrHXvf332GFEw6nEt1FwGHvItUiQ=
Signature digestsha512
Dependencies
Required Nextcloud versions >=25.0.0,<29.0.0
Minimum Integer bits32
PHP>=8.0.0