Kevin Papst
16e8e8a5e5
fix deprecations (move same controller) ( #2440 )
2021-03-16 14:06:15 +01:00
Kevin Papst
3e9371bd6a
Timesheet validator: prevent overbooking budgets ( #2422 )
2021-03-13 14:41:29 +01:00
Kevin Papst
8d72d114c7
improved duration and minute selector ( #2264 )
...
* do not close modal if form is dirty
* deprecated TimesheetConfiguration
* inject timezone in form types
* cleanup usage of UserDateTimeFactory
* allow to configure increment steps for minutes
* use 15 minutes step for datetimepicker in project edit form
* use rounding rules for increments in minute select for begin and end
* allow duration in multi user and admin timesheet forms
* make dropdown values configurable
2021-01-17 14:04:13 +01:00
Kevin Papst
996f05c73a
added project importer and grandtotal converter ( #1468 )
2020-10-11 22:08:00 +02:00
Kevin Papst
2b033710e2
events: extend system configurations and set invoice formatter ( #1995 )
2020-09-25 19:51:23 +02:00
Kevin Papst
9ef32e75c5
added drag and drop for new records via calendar ( #1962 )
2020-09-17 01:13:48 +02:00
Kevin Papst
476e6ca150
remove usage of getenv from codebase ( #1861 )
2020-08-02 01:02:04 +02:00
Honza Kopecký
091740f407
timesheet lockdown with grace period ( #1644 )
2020-07-02 18:54:17 +02:00
Kevin Papst
e22830790b
new system-config to prevent overlapping records ( #1720 )
2020-06-28 22:09:50 +02:00
Kevin Papst
0f3fa8fdbe
Code improvements ( #1649 )
...
* use global namespace for faster lookups
* phpstan level 5
2020-04-19 14:37:14 +02:00
Kevin Papst
057c824e9f
replaced mailer library, added email templates ( #1462 )
2020-02-12 16:05:13 +01:00
Kevin Papst
1b4f4bba22
added option to use only pre-defined tags ( #1463 )
2020-02-12 15:35:42 +01:00
Kevin Papst
6a44dbfe83
detail pages for customers and projects ( #1371 )
2020-01-16 16:25:28 +01:00
Kevin Papst
261b4646e4
added chinese translations ( #1310 )
2019-12-09 12:56:38 +01:00
Kevin Papst
af0f89774e
User roles and permission management via Admin UI ( #1231 )
2019-11-10 18:53:56 +01:00
Kevin Papst
c6c4098759
rounding rules via admin screen, round begin when starting record ( #1229 )
2019-11-10 13:57:05 +01:00
Kevin Papst
f4fcfeba9d
dynamic branding options ( #1205 )
2019-10-30 14:22:34 +01:00
Kevin Papst
e99b170d0a
refactored search with free search term support ( #1064 )
2019-09-04 18:54:06 +02:00
Kevin Papst
561ec3b1e9
added team permissions ( #996 )
2019-08-16 01:22:33 +02:00
Kevin Papst
1bd784eef3
added calendar slot_duration config ( #989 )
2019-07-26 23:51:29 +02:00
Kevin Papst
19843760e5
allow to configure default values for users ( #919 )
2019-07-05 02:42:50 +02:00
Kevin Papst
90980f40f5
allow to disable user preferences by permission ( #895 )
2019-07-01 19:37:20 +02:00
Kevin Papst
59d2946b91
add "duration + fixed start time" tracking mode ( #859 )
2019-06-15 23:04:53 +02:00
Kevin Papst
833968a87d
fix LDAP install for systems without ldap extension ( #846 )
2019-06-11 01:25:49 +02:00
Kevin Papst
0c0e9c2f71
LDAP authentication support ( #815 )
2019-06-07 22:48:39 +02:00
Kevin Papst
d9dca96a32
added punch-in punch-out / time-clock mode ( #812 )
2019-05-27 01:36:43 +02:00
Kevin Papst
d2ad87d09c
improved calendar ( #784 )
2019-05-19 16:16:20 +02:00
Kevin Papst
09da7cd242
javascript and api to stop and display active records ( #772 )
2019-05-10 13:45:09 +02:00
Kevin Papst
b8811924c3
reduce config complexity by converting php format to js format ( #734 )
2019-04-29 00:24:23 +02:00
Kevin Papst
32f0d80729
configs: overwrite via prepend, mode instead of duration_only ( #715 )
2019-04-26 16:14:28 +02:00
Kevin Papst
13d9f8f3f7
added database driven system configurations with admin screen ( #647 )
2019-03-22 20:58:38 +01:00
Kevin Papst
bde791fa55
added begin, end and export filter for API timesheets ( #639 )
2019-03-14 03:34:54 +01:00