Commit Graph

391 Commits

Author SHA1 Message Date
ralf
0453aede6c * All apps/REST API: fix custom-fields of type "date-time" to be stored timezone aware, if no format is specified
So far date-time values were stored in user-time, now they are stored in UTC with a "Z" suffix" to be able to still read old user-time values unchanged.
2024-07-29 15:57:08 +02:00
ralf
8864d6ed49 * CalDAV/CardDAV/REST API: fix not working limited result
(since using generator instead of iterator)
2024-05-13 19:18:59 +02:00
ralf
f082055134 * Timesheet: allow to record/document pause times with timer and manually 2024-05-07 15:04:18 +02:00
ralf
087e969f9f * Timesheet: new REST API to query, update and delete timesheets https://github.com/EGroupware/egroupware/blob/master/doc/REST-CalDAV-CardDAV/Timesheet.md 2024-02-06 16:39:12 +02:00
ralf
59619f83a9 allow to use "/timesheet/?filters[owner]=0" to query all timesheets the current user has access too 2024-02-06 12:52:02 +02:00
ralf
ca443060f4 WIP timesheet REST API 2024-02-01 22:16:36 +02:00
ralf
5cf18de2c5 fix class "Accounts" not found 2023-12-21 11:30:46 +02:00
nathan
fd4bdd4997 Timesheet: Use regular account select for user / owner for large numbers of users 2023-12-05 09:56:32 -07:00
nathan
a61323f98c Disable kanban column if user does not have access to kanban 2023-07-12 15:47:54 -06:00
nathan
d21eb1c1e6 Timesheet: Do not include events in new timesheet when save & new button is clicked on a timesheet with events 2023-07-11 15:24:18 -06:00
nathan
b1fe818527 * Infolog / Tracker: Change timesheet total columns to ignore timesheet ACL
Use "Respect timesheet run and read permissions for time totals" configuration setting for previous behaviour, which may exclude some timesheet entries
2023-06-09 13:19:19 -06:00
nathan
560ed79a5e Timesheet: Display changes for totals
- Totals in row now bold
- Duration in header set to h:m format
- adjust vertical position of duration to be more in line with the rest
2023-05-08 10:04:52 -06:00
nathan
a6a30e80b5 Timesheet: Fix broken total in header
Passing columns as string caused them to get split by comma, but $total_sql had round(...,2) in it.  Changed to use array.
2023-04-11 17:32:55 -06:00
nathan
3dff71c8d1 Timesheet: Update quantity placeholder when duration changes, including decimal separator 2023-03-22 11:00:16 -06:00
ralf
de25881635 fix "yes" could not be selected for "Asking to start and stop working time with session" 2023-02-24 13:29:37 +01:00
ralf
ab6338f13f * TimeSheet: allow to update times in events tab rows by clicking on the time
@todo nathan: setting min/max values on Et2DateTime loaded via a template into dialog does NOT work, as widget has not instantiated Flatpicker,
when the dialog.getUpdateComplete promise returns and the widget then simply ignores the set min/max time :(
2023-02-06 14:42:18 +01:00
ralf
1a37abd472 fix timer is shown even without timesheet permissions 2023-01-30 16:59:48 +01:00
nathan
82ae5aa939 Timesheet: Avoid error if selectcols is not an array
in_array(): Argument #2 ($haystack) must be of type array, null given
2023-01-02 08:31:10 -07:00
ralf
6a93275d93 only consider last linked entry, for timers created on an app entry
as rest of code wont deal with multiple ones
2022-11-04 15:57:38 +01:00
ralf
693cf1f116 run same logic for timer timesheets started on an other app's entry, as used for timesheets manually booked on them 2022-11-03 13:51:45 +01:00
ralf
a767bdef1e quiten error / dont stall, if 22.1 update is not yet run 2022-11-01 18:21:59 +01:00
ralf
03580169c1 fix not shown timer preferences 2022-10-21 12:49:33 +02:00
ralf
664bb86b2a WIP timesheet timers: create a single working time timesheet per configured periode of day, week or month 2022-10-14 10:12:11 +02:00
ralf
49f608159c WIP timesheet timer: ask user to start/stop working time with session/login/logout
if working time is not disabled in timesheet config, or asking is disabled in user preferences
2022-10-13 16:31:17 +02:00
ralf
4de7dc5ba7 WIP timesheet timers: delete timer-events on timesheet deletion 2022-10-11 14:53:21 +02:00
ralf
65c1233ced WIP timesheet timer: allow to start timer as alternative to add a timesheet directly
timesheet will be added on stopping the timer
2022-10-09 15:30:46 +02:00
ralf
d8e993dc75 WIP timesheet timers: allow to add more time on an existing timesheet with right click "Start timer" 2022-10-07 19:36:57 +02:00
ralf
59da89fe8b WIP timesheet timers: config to disable timers and overwrite of start&stop time 2022-10-05 14:55:42 +02:00
ralf
0a9526c152 WIP timesheet timer: persistence and opening a new timesheet when stoping the specific timer 2022-09-30 19:07:33 +02:00
ralf
3c79bd4345 WIP timesheet timer
just a prototype for now, no persistence beside the session to test reloads
2022-09-26 08:54:05 +02:00
nathan
db7b9f0abb Timesheet: Avoid error when opening list caused by incorrect 'All' value in filter 2022-08-23 08:59:25 -06:00
Ralf Becker
382c39e817 fix PHP 8.0 TypeError: Unsupported operand types: string * float 2021-11-16 18:27:40 +01:00
Ralf Becker
383a6350f5 fix PHP 8.0 Error: Undefined constant "TIMESHEET_APP" 2021-11-15 17:49:43 +01:00
nathan
9e2bb05ded Placeholders list common UI
Should reduce maintenance by using a common UI to show placeholders based on the placeholder list
2021-10-12 14:18:18 -06:00
Ralf Becker
98e00f08d0 fix PHP 8.0 TypeError: when exporting multiple users
Argument 1 passed to EGroupware\Api\Accounts::username() must be of the type int or null, array given
2021-10-11 18:33:59 +02:00
Ralf Becker
90ab703a14 fix PHP Warning count(): Parameter must be an array or an object that implements Countable 2021-10-11 13:58:33 +02:00
nathan
da6a16e62d - Add generation target path preference to all apps
- Use common method to get merge preferences to reduce duplication
2021-10-07 10:22:45 -06:00
nathan
45f039da95 * Add preference to set the filename of merged documents using placeholders 2021-10-06 11:59:29 -06:00
Ralf Becker
5b3a6c02b4 PHP 8.0 Fatal error: Declaration of timesheet_tracking::get_subject($data, $old) must be compatible with Api\Storage\Tracking::get_subject($data, $old, $deleted = null, $receiver = null) 2021-10-06 16:32:14 +02:00
Ralf Becker
d2c85cfe86 fix PHP 8.0 errors: key(): Argument #1 ($array) must be of type array, null given
guarding key() from calling with null eg. $button = key($content['button']) --> key($content['button'] ?? []) or check before !empty($content['button'])
2021-10-06 16:08:32 +02:00
nathan
a0a89a6b74 Placeholder dialog: Add placeholders for projectmanager, timesheet, tracker 2021-10-05 16:09:39 -06:00
nathangray
9be653e226 Adapt app-specific merges to 186e03671a 2021-06-23 11:31:47 -06:00
nathangray
218e17798d Api: Fix Asyncservice did not have proper filesystem access as the job user 2021-06-18 14:56:14 +02:00
nathangray
583fbea046 Use Merge number formatting instead of export formatting. It takes export file type into consideration. 2021-04-21 10:33:31 -06:00
nathangray
f89c8cfb03 Add hrules to sidebox menus 2021-04-19 16:02:41 -06:00
nathangray
aff06ec4cc Import/export fixes
- Fix for missing floats by Jürgen Dlugi
- Fix broken timesheet export was always 0 results
2021-04-08 16:53:06 -06:00
Ralf Becker
868135775c PHP 8 fixes 2021-03-29 16:47:19 +02:00
Ralf Becker
84845d05b5 Fix PHP 8.0 Fatal error: Unparenthesized a ? b : c ?: d is not supported 2021-03-21 21:46:10 +01:00
Ralf Becker
ab9c089f70 fix PHP 8 Fatal error Array and string offset access syntax with curly braces is no longer supported 2021-03-21 21:13:07 +01:00
nathangray
779f2691bd * Timesheet: Fix created time was wrong in user timezone was not the same as server timezone 2021-01-28 09:39:17 -07:00