Commit Graph

6434 Commits

Author SHA1 Message Date
ralf
ae76eea6f3 fix lavatar shows same letters for every contact not having a photo
caused by wrongly falling back to the contact with contact_id equal to account_id of current user
2023-07-27 13:28:55 +02:00
ralf
0f692fbb74 fix lavatar shows same letters for every contact not having a photo
caused by wrongly falling back to the contact with contact_id equal to account_id of current user
also fix TypeError if remote search does not return an array
2023-07-27 12:45:40 +02:00
ralf
322fefa62c Revert "Et2SelectEmail: Pass email to lavatar to get contact picture in email select option"
This reverts commit 5de789f7f7.
2023-07-27 11:08:23 +02:00
nathan
5de789f7f7 Et2SelectEmail: Pass email to lavatar to get contact picture in email select option 2023-07-26 13:39:00 -06:00
nathan
f3258ebc45 Fix validation of CF options from json file 2023-07-26 10:11:07 -06:00
nathan
575c8fa976 SearchMixin: Move missing value check after update so select_options gets a chance to populate first
This should speed up the initialization a little, avoiding some unneeded checks
2023-07-26 08:32:00 -06:00
ralf
7735c57031 fix Error: Call to undefined method calendar_bo::find_or_add_categories() when specifying categories 2023-07-26 16:31:37 +02:00
ralf
d3b644ebec fix Error: Call to undefined method calendar_bo::find_or_add_categories() when specifying categories 2023-07-26 16:30:10 +02:00
ralf
44359621a3 fix TypeError: Cannot read properties of null (reading 'trim') 2023-07-26 14:22:11 +02:00
ralf
d071757bb9 fix TypeError: Cannot read properties of null (reading 'trim') 2023-07-26 14:20:13 +02:00
ralf
bf5bb04e1f Changelog for 23.1.20230726 2023-07-26 12:49:21 +02:00
ralf
a3bc505242 Changelog for 23.1.20230726 2023-07-26 12:28:35 +02:00
nathan
d6739afe8b Calendar: Fix group calendar could be missing events under some circumstances
Static account options added to CalendarOwner were blocking the group data needed, fixed by using sent options over account options
2023-07-26 09:06:27 +02:00
nathan
e0d284d3ae Calendar: Fix group calendar could be missing events under some circumstances
Static account options added to CalendarOwner were blocking the group data needed, fixed by using sent options over account options
2023-07-25 11:15:51 -06:00
nathan
0e8e46f44e Api: Fix doubled link on open and missing link app select 2023-07-25 18:53:53 +02:00
ralf
eef211fdcd * Calendar: new REST API to read, create, modify and delete events, see https://github.com/EGroupware/egroupware/blob/master/doc/REST-CalDAV-CardDAV/Calendar.md 2023-07-25 18:38:34 +02:00
ralf
f60ee71c1c WIP Calendar REST API 2023-07-25 18:38:34 +02:00
ralf
2b323f4ceb aggregate Etemplate\Widget\Url::ajax_contact() requests and search for all of them in a single AJAX request and SQL query 2023-07-25 18:35:13 +02:00
nathan
b44ea1b2b0 Api: Fix doubled link on open and missing link app select 2023-07-25 10:27:05 -06:00
ralf
a89b69528e aggregate Etemplate\Widget\Url::ajax_contact() requests and search for all of them in a single AJAX request and SQL query 2023-07-25 18:18:29 +02:00
nathan
2a5d0062dd Api: SearchMixin improvements to work with Et2LinkSearch more efficiently
Moving handling of missing options to overridable method so Et2LinkSearch can use its more efficient method
2023-07-25 09:38:11 -06:00
nathan
3aaf0b2b60 Api: More missing changes from SearchMixin.remoteQuery() / static options from json file 2023-07-25 09:14:13 -06:00
nathan
df9ec35704 Api: Fix Et2LinkSearch initialization with value failed, giving blank widget 2023-07-25 08:48:51 -06:00
ralf
a61445c0d0 fix TypeError if field.values is null causing some nextmatch features like search not to render 2023-07-25 16:39:56 +02:00
ralf
10f8d54f46 for api.queue close session to NOT block other requests (api.queue should NOT be used for changing something in session) 2023-07-25 11:47:14 +02:00
hadi
a4109439e1 Implement onlyEmail option for UrlEmailReadonly 2023-07-25 11:42:40 +02:00
hadi
29d159ea29 Make sure to show only email when using current value as email (avoids getting duplicate name in fullEmail mode) 2023-07-25 11:42:01 +02:00
ralf
7a7c04ccc8 for api.queue close session to NOT block other requests (api.queue should NOT be used for changing something in session) 2023-07-25 11:37:37 +02:00
ralf
f35de819a7 adapt Et2LinkSearch.remoteQuery() to Nathans change not run cleanSelectOptions() in Et2Select.processRemoteResults() any more
@Nathan: not sure if this needs to be applied in more places, or your change should detect it needs running ...
2023-07-25 10:39:13 +02:00
nathan
edcc260b7b WIP on caching static option file and searching it client-side
Get it working in nextmatch
2023-07-24 15:13:28 -06:00
ralf
b013f75eef * Calendar: new REST API to read, create, modify and delete events, see https://github.com/EGroupware/egroupware/blob/master/doc/REST-CalDAV-CardDAV/Calendar.md 2023-07-24 17:08:18 +02:00
nathan
f04b25089a WIP on caching static option file and searching it client-side
Avoid type error in CalendarOwner
2023-07-24 08:51:27 -06:00
nathan
f0be2fcdca WIP on caching static option file and searching it client-side
Still needs file caching & passing correct URL
2023-07-21 16:40:29 -06:00
ralf
7e333ceac9 WIP Calendar REST API 2023-07-21 17:41:37 +02:00
ralf
0bd9ec1cf2 fix docu, spelling and some static vs. non-static calls 2023-07-21 09:00:00 +02:00
ralf
a3bed88d04 fix docu, spelling and some static vs. non-static calls 2023-07-21 08:54:06 +02:00
Milan
c170c44168 Merge remote-tracking branch 'origin/master' 2023-07-20 16:40:50 +02:00
Milan
0dd7616c5e egw_action copy fixes regarding ticket 84314 2023-07-20 16:40:22 +02:00
nathan
6286679b0c * Api: Restrict customfield options read from a file to only JSON files. Files should contain an array of options.
ex:
[
  { "value": "Α", "label": "α alpha" },
  { "value": "Β", "label": "β beta" }
]
2023-07-18 08:20:29 -06:00
nathan
0632068664 * Api: Customfield selectboxes can read options from a PHP file in the VFS using @[path] ex: @/home/Default/selects.php 2023-07-18 08:20:18 -06:00
nathan
43f704f0d5 If customfields has a label and only 1 field, use the label for the widget
This lets us use " " as label to hide the custom field's label
2023-07-18 08:20:12 -06:00
ralf
39aa763552 * Adressbook/CardDAV: unconditionally start output-buffering to fix problems with huge multiget reports from TB110 AB 2023-07-17 21:44:16 +02:00
nathan
e1be2276c1 More indent for sub-categories 2023-07-17 10:39:09 -06:00
ralf
9ad249fa30 * Adressbook/CardDAV: unconditionally start output-buffering to fix problems with huge multiget reports from TB110 AB 2023-07-15 08:29:47 +02:00
nathan
3c81672a41 More indent for sub-categories 2023-07-14 14:17:39 -06:00
nathan
0c9cb71a70 Get rid of "Undefined array key "HTTP_X_FORWARDED_PROTO"" warning 2023-07-14 10:58:53 -06:00
nathan
604a12f7e6 Get rid of "Undefined variable $args" warning 2023-07-14 10:56:18 -06:00
nathan
5b621ffcba Get rid of a bunch more warnings 2023-07-14 10:52:05 -06:00
nathan
8ed5c2aa7e Get rid of a bunch of warnings in Entry & subclasses 2023-07-14 10:14:06 -06:00
StefanU
90508896d3 Update calendar.svg
File optimisation, colour corrected
2023-07-14 09:24:07 -06:00
StefanU
c205be4547 Update delete.svg
Change to new EGw design
2023-07-14 09:24:01 -06:00
StefanU
ba551a27ef Update MailFolderTrash.svg
Change to new EGw design
2023-07-14 09:23:52 -06:00
Milan
4727b40329 Merge remote-tracking branch 'origin/master' 2023-07-14 15:50:17 +02:00
Milan
b00371c7e1 WIP egw_action copy fixes
paste not working
2023-07-14 15:37:20 +02:00
StefanU
00b15e2f54
Update calendar.svg
File optimisation, colour corrected
2023-07-14 12:03:25 +02:00
StefanU
ffe6ca7d5d
Update delete.svg
Change to new EGw design
2023-07-14 11:48:45 +02:00
StefanU
1b6525eb12
Update MailFolderTrash.svg
Change to new EGw design
2023-07-14 11:46:33 +02:00
ralf
61281ac778 fix not translated context menu 2023-07-14 11:30:19 +02:00
ralf
40a4d38776 fix not translated context menu
window.egw with a reference to the main window in a popup, egw(_app, window) gives one with correct window context / translation in a popup (_app does not matter for translations, they are requested to be loaded from server-side)
2023-07-14 10:41:48 +02:00
ralf
cae7ff0c01 add Promise<Et2Dialog> return type to openDialog 2023-07-14 09:08:36 +02:00
nathan
5b401feb85 Changes for opening etemplate in a dialog
- openDialog() now returns Promise<Et2Dialog>
- fixed etemplate reload
2023-07-14 09:08:35 +02:00
ralf
4bb5f9f7b2 WIP Mail REST API: fix reported problems with calendar quick add 2023-07-14 09:08:35 +02:00
nathan
e4b128408f Et2Dialog: Fix buttons could not be adopted if dialog contains only arbitrary slotted content 2023-07-14 09:08:35 +02:00
ralf
3c732b9caf WIP Mail REST API: fix closing dialog closes popup to because dialog was already removed when response was received 2023-07-14 09:08:35 +02:00
ralf
e9b054b025 WIP Mail REST API: change calendar to use new egw.openDialog():
- renamed app.dialogExec() to app.openDialog() or egw.openDialog()
- the later is the nicer place, but fails for lost window context with popups :(
2023-07-14 09:08:35 +02:00
nathan
b35e26a7f3 Get calendar quick-add working with Ralf's changes to open an etemplate in a dialog (c63784d7e8), fix buttons from those etemplates weren't adopted 2023-07-14 09:08:35 +02:00
ralf
d178087b16 WIP new app.ts method dialogExec(_menuaction) opening a popup into a dialog 2023-07-14 09:08:35 +02:00
ralf
9904ca59de WIP Mail REST API: fix failed POST request to create a contact (gave 501 Not Implemented) 2023-07-14 09:08:35 +02:00
ralf
f518f61335 WIP new app.ts method dialogExec(_menuaction) opening a popup into a dialog
ToDo: overwrite Framework actions in etemplate2.handle_load() to eg. close dialog, but not window, or refresh window instead of opener
2023-07-14 09:07:06 +02:00
ralf
d93aa1e91c WIP Mail REST Api: permanent log result of primary backend for fallback auth 2023-07-14 09:06:12 +02:00
ralf
f8c4d7c8e3 WIP Mail REST API: fix broken fallback auth 2023-07-14 09:06:12 +02:00
ralf
f0cb5755c4 WIP Mail REST API: missing files from last commit 2023-07-14 09:06:11 +02:00
ralf
f95aad8713 * Mail: REST API to send mails including attachments / sharing links, or open interactive compose windows
WIP Mail REST API: enable direct sending of mails with token authentication / no password not allowing to save mail to Sent folder
2023-07-14 09:05:02 +02:00
ralf
b1a4a45bb1 add Promise<Et2Dialog> return type to openDialog 2023-07-14 08:54:07 +02:00
ralf
c5d3b58cb1 WIP REST API for mail & token auth: fix wrong namespace 2023-07-14 08:44:16 +02:00
ralf
78068ca34a * Setup/Authentication: added an authentication log and fallback authentication for all backends 2023-07-14 08:42:58 +02:00
ralf
bd700c5169 WIP REST API: show checkbox in application password to (re-)generate new token and display it 2023-07-14 08:42:13 +02:00
ralf
80fce09a2c WIP Mail Rest API: UI for application passwords/tokens for admin 2023-07-14 08:41:46 +02:00
ralf
4c981ebd44 WIP REST API: using tokens to authenticate as user or impersonate a user without the password and optional limited application rights 2023-07-14 08:41:18 +02:00
ralf
21c40e5d01 WIP Mail REST API: do NOT read attachments into memory, they might be to big 2023-07-14 08:40:53 +02:00
ralf
2858a8a599 WIP REST API for mail
currently we can launch (interactive) compose windows, if user is online
ToDo:
- send mails for a user
- authentication as arbitrary user with an API token
2023-07-14 08:39:58 +02:00
nathan
9d61a2ef17 Changes for opening etemplate in a dialog
- openDialog() now returns Promise<Et2Dialog>
- fixed etemplate reload
2023-07-13 16:18:11 -06:00
ralf
efaa3ae386 WIP Mail REST API: fix reported problems with calendar quick add 2023-07-13 18:44:00 +02:00
nathan
7693d7f012 Api: Fix et2_widget_entry sum & compare
Options property is deprecated for webComponents, and cannot be changed.
2023-07-13 10:40:59 -06:00
nathan
15cf0ca1ff Api: Fix et2_widget_entry sum & compare
Options property is deprecated for webComponents, and cannot be changed.
2023-07-13 10:38:58 -06:00
nathan
8dee34407e Et2Dialog: Fix buttons could not be adopted if dialog contains only arbitrary slotted content 2023-07-13 08:27:56 -06:00
ralf
865d2b3d8d WIP Mail REST API: fix closing dialog closes popup to because dialog was already removed when response was received 2023-07-13 15:36:55 +02:00
ralf
3e27def4f9 WIP Mail REST API: change calendar to use new egw.openDialog():
- renamed app.dialogExec() to app.openDialog() or egw.openDialog()
- the later is the nicer place, but fails for lost window context with popups :(
2023-07-13 15:22:21 +02:00
nathan
e6f142c7a4 Api: Fix nm columnselection still showed disabled columns 2023-07-12 15:08:31 -06:00
nathan
fb6f1654c7 Api: return a Promise from htmlarea.doLoadingFinished() so etemplate can wait for it to be initialized 2023-07-12 09:49:42 -06:00
nathan
50e3a1b204 Get calendar quick-add working with Ralf's changes to open an etemplate in a dialog (c63784d7e8), fix buttons from those etemplates weren't adopted 2023-07-11 17:07:51 -06:00
ralf
c63784d7e8 WIP new app.ts method dialogExec(_menuaction) opening a popup into a dialog 2023-07-11 22:45:54 +02:00
nathan
f6a15f3c94 Api: Swap sparse account array/object for simple list to fix missing options in select account widget 2023-07-11 14:16:10 -06:00
nathan
da2ab2004b Api: return a Promise from htmlarea.doLoadingFinished() so etemplate can wait for it to be initialized 2023-07-11 12:02:36 -06:00
nathan
6ee5d69e1e Api: Add a timeout for form submit
If a submit takes more than 30s, give a warning and hide the loader so the user can try to salvage their changes.
2023-07-11 08:55:16 -06:00
ralf
f2b81f6fd2 WIP Mail REST API: fix failed POST request to create a contact (gave 501 Not Implemented) 2023-07-11 14:08:09 +02:00
ralf
96bb3a6884 WIP new app.ts method dialogExec(_menuaction) opening a popup into a dialog
ToDo: overwrite Framework actions in etemplate2.handle_load() to eg. close dialog, but not window, or refresh window instead of opener
2023-07-11 13:38:09 +02:00
nathan
7ae974500e Use code 204 instead of 404 to avoid browser treating it like an error 2023-07-10 14:56:35 -06:00
nathan
23f0b6faaf * Api: Restrict customfield options read from a file to only JSON files. Files should contain an array of options.
ex:
[
  { "value": "Α", "label": "α alpha" },
  { "value": "Β", "label": "β beta" }
]
2023-07-10 14:43:32 -06:00
nathan
0c050ad9f3 Api: Add a timeout for form submit
If a submit takes more than 30s, give a warning and hide the loader so the user can try to salvage their changes.
2023-07-10 09:07:22 -06:00
milan
5e3c67a5cf converted egw_action from javascript to typescript
classes are now uppercase and in their own files. lowercase classes are deprecated.
Interfaces are now actual interfaces that should be implemented instead of creating and returning an ai Object every time
2023-07-10 16:54:22 +02:00
ralf
2f56677cc8 WIP Mail REST Api: permanent log result of primary backend for fallback auth 2023-07-07 16:17:36 +02:00
ralf
9a559c5000 WIP Mail REST API: fix broken fallback auth 2023-07-07 16:02:02 +02:00
ralf
8115a92a6a WIP Mail REST API: missing files from last commit 2023-07-07 12:25:45 +02:00
ralf
2bd5fd5601 WIP Mail REST API: enable direct sending of mails with token authentication / no password not allowing to save mail to Sent folder 2023-07-07 12:22:15 +02:00
ralf
d46f8f4a4e WIP REST API for mail & token auth: fix wrong namespace 2023-07-07 09:34:04 +02:00
nathan
2d0976f456 Handle parsing number into boolean expression 2023-07-06 08:46:12 -06:00
nathan
186a7d46dd Handle parsing number into boolean expression 2023-07-06 08:29:30 -06:00
ralf
1a0660a6cc * Setup/Authentication: added an authentication log and fallback authentication for all backends 2023-07-06 15:50:53 +02:00
nathan
dffa51e3dd Api: Pre-select opened mail dialog if add email address preference is not set 2023-07-05 08:20:00 -06:00
nathan
e78b33145e * Api: When clicking an email address, ask if user wants to add email to existing compose window or start a new mail 2023-07-05 08:19:44 -06:00
nathan
1b3ce756f9 Api: Pre-select opened mail dialog if add email address preference is not set 2023-07-05 08:12:44 -06:00
nathan
0e6f74da02 * Api: When clicking an email address, ask if user wants to add email to existing compose window or start a new mail 2023-07-04 08:27:59 -06:00
ralf
333750587c WIP REST API: show checkbox in application password to (re-)generate new token and display it 2023-07-04 11:22:49 +02:00
ralf
07300704bc WIP Mail Rest API: UI for application passwords/tokens for admin 2023-07-03 17:09:26 +02:00
ralf
9359e3eee5 WIP REST API: using tokens to authenticate as user or impersonate a user without the password and optional limited application rights 2023-06-30 20:45:45 +02:00
nathan
f4699543c3 Et2Dialog fixes
- Fix noCloseButton attribute was not implemented
- Fix hideOnExcape=false still allowed closing on escape
- Fix using Et2Dialog.BUTTONS_OK showed no buttons
2023-06-30 11:02:04 -06:00
ralf
65b239ca2c WIP Mail REST API: do NOT read attachments into memory, they might be to big 2023-06-30 17:13:42 +02:00
ralf
fa169d0e03 * mailto: fix wrong URL registered for on premise installation (you need to delete it in the browser first!)
Chrome: Datenschutz und Sicherheit > Website-Einstellungen > Zusätzliche-Berechtigungen (aufklappen!) > Protokoll-Handler
2023-06-30 11:19:46 +02:00
ralf
4616fb03d0 * mailto: fix wrong URL registered for on premise installation (you need to delete it in the browser first!)
Chrome: Datenschutz und Sicherheit > Website-Einstellungen > Zusätzliche-Berechtigungen (aufklappen!) > Protokoll-Handler
2023-06-30 11:19:18 +02:00
ralf
931e795dd7 fix restoring 1.8 database gave "Duplicate entry" error by mapping that (again) to InvalidSql exception (was changed due to PHP 8) 2023-06-30 10:01:29 +02:00
ralf
95ba35bfeb fix restoring 1.8 database gave "Duplicate entry" error by mapping that (again) to InvalidSql exception (was changed due to PHP 8) 2023-06-30 10:01:01 +02:00
nathan
bf03f4b198 * Wiki: allow German umlauts and other non-ascii chars in page names
Api: Fix encodeId() failed with integers
2023-06-30 07:43:23 +02:00
ralf
e07410d99f allow to use non-ascii chars for link-ids e.g. the name of Wiki pages can contain them
we store them as "\uXXXX" in the ascii column
2023-06-30 07:42:48 +02:00
nathan
dc5b0a4580 Api: User selection = none fixes
- Fix display was 'false' instead of blank
- Fix widget type check was not preserving original value
2023-06-29 14:55:37 -06:00
nathan
3cfdca0ae9 * Api: Customfield selectboxes can read options from a PHP file in the VFS using @[path] ex: @/home/Default/selects.php 2023-06-29 13:36:28 -06:00
nathan
85cc2a33cd If customfields has a label and only 1 field, use the label for the widget
This lets us use " " as label to hide the custom field's label
2023-06-29 10:52:20 -06:00
nathan
649b0bfd59 Use code 204 instead of 404 to avoid browser treating it like an error 2023-06-29 09:48:30 -06:00
ralf
dfef4ce0c5 WIP REST API for mail
currently we can launch (interactive) compose windows, if user is online
ToDo:
- send mails for a user
- authentication as arbitrary user with an API token
2023-06-29 12:50:04 +02:00
ralf
ef06967f85 * Mail: improve performace by skiping search for avatar images in contacts in favor of loading them when they become visible
fix regular expression
2023-06-28 08:22:47 +02:00
nathan
2c6120b705 Api: Fix avatar images were not loaded 2023-06-28 08:21:59 +02:00
ralf
83dd2d9ac1 WIP improve avatar loading in mail app
currently ET2Avatar is NOT correctly handling contactId=email:<email>
2023-06-28 08:21:59 +02:00
nathan
2c4c99d00d Api: All images lazy load
Try to stop when lots of images block the rest of the rendering
2023-06-28 08:21:58 +02:00
ralf
ee51d2890c needs ungreedy, to not include quotes 2023-06-28 07:49:20 +02:00
ralf
5bb1d3c888 needs ungreedy, to not include quotes 2023-06-28 07:48:51 +02:00
ralf
acfcebce4a fix regular expression 2023-06-28 07:29:38 +02:00
nathan
d994f3f92e Api: Fix avatar images were not loaded 2023-06-27 09:46:30 -06:00
nathan
c8bee10afc Mail: Fix event detection in multipart mixed mails
Meeting form was not presented, just request content
2023-06-27 08:02:52 -06:00
ralf
23895c94be WIP improve avatar loading in mail app
currently ET2Avatar is NOT correctly handling contactId=email:<email>
2023-06-27 08:59:59 +02:00
nathan
325fdcb02c Api: User selection = none fixes
- Fix display was 'false' instead of blank
- Fix widget type check was not preserving original value
2023-06-26 10:49:25 -06:00
nathan
faa1e17460 Mail: Fix event detection in multipart mixed mails
Meeting form was not presented, just request content
2023-06-26 08:43:29 -06:00
ralf
7370b42c1e * ActiveDirectory: implement fail over for multiple AD controllers (failed controllers are blacklisted for 5min) 2023-06-26 12:20:41 +02:00
nathan
cfcd56fd00 Projectmanager: Fix hoursPerDay was not properly considered for durations 2023-06-23 14:35:04 -06:00
ralf
742c067740 * ActiveDirectory: implement fail over for multiple AD controllers (failed controllers are blacklisted for 5min) 2023-06-23 09:46:59 +02:00
hadi
3ecb093d35 Implement onlyEmail option for UrlEmailReadonly 2023-06-22 14:37:15 +02:00
hadi
0d60d3baf4 Make sure to show only email when using current value as email (avoids getting duplicate name in fullEmail mode) 2023-06-22 12:34:56 +02:00
nathan
c2e981bc0f Stop changing symlink mime to target mime when saving 2023-06-21 10:09:16 -06:00
ralf
a4f745f16a Changelog for 23.1.20230620 2023-06-20 12:07:48 +02:00
ralf
bd8df81953 Changelog for 23.1.20230620 2023-06-20 12:07:16 +02:00
nathan
bb0436661d Home: Fix missing portlet settings button 2023-06-19 09:16:32 -06:00
hadi
717bf2a717 * Mail: fix mixed up inline images and attachments in smime signed messages 2023-06-19 17:07:37 +02:00
hadi
fce9ba3a41 * Mail: fix mixed up inline images and attachments in smime signed messages 2023-06-19 17:05:37 +02:00
nathan
e1690a1dc1 Don't try to load disabled templates
Allows us to disable / not load templates even if they have template / ID
2023-06-19 08:11:04 -06:00
hadi
3740586d07 Make sure the status is by_date before adding date rules into sieve vacation notice 2023-06-19 10:24:32 +02:00
hadi
b744859b70 Make sure the status is by_date before adding date rules into sieve vacation notice 2023-06-19 10:19:04 +02:00
ralf
983c092aca fix wrongly placed exception 2023-06-16 14:54:07 +02:00
ralf
fd527047fb fix wrongly placed exception 2023-06-16 14:53:37 +02:00
ralf
51ff3f185d fix PHP TypeError: Argument #2 ($array) must be of type array, null given 2023-06-16 10:16:20 +02:00
ralf
b234c4967b fix returning unsanitized user-input 2023-06-16 09:39:18 +02:00
ralf
0386a463ec fix returning unsanitized user-input 2023-06-16 09:38:32 +02:00
nathan
b83887d44a Api: All images lazy load
Try to stop when lots of images block the rest of the rendering
2023-06-15 09:28:38 -06:00
ralf
b4b6a2ae08 fix lots of warnings filling zpush logs 2023-06-15 16:18:20 +02:00
ralf
f6663bb81c fix lots of warnings filling zpush logs 2023-06-15 16:18:16 +02:00
ralf
99cf6fee84 better (commented out) logging of onShutdown functions 2023-06-15 12:36:03 +02:00
nathan
3a54a93eb3 Stop changing symlink mime to target mime when saving 2023-06-14 13:29:35 -06:00
nathan
fe11716130 Fix tooltip was under calendar popup 2023-06-14 09:13:42 -06:00
nathan
c213ebb17d Fix tooltip was under calendar popup 2023-06-14 09:04:01 -06:00
nathan
d2cc3f2f53 Change new favourite icon from new to add 2023-06-12 14:26:23 -06:00
nathan
4c058ffc5f Change new favourite icon from new to add 2023-06-12 14:19:53 -06:00
nathan
0e82fd3a15 Fix link delete button to show on row hover again 2023-06-12 09:37:14 -06:00
nathan
e2f82ca985 Fix link delete button to show on row hover again 2023-06-12 09:30:17 -06:00
nathan
a91d4cf574 * Api: Fix custom etemplates were still used after deletion 2023-06-12 09:11:36 -06:00
hadi
5e67e8c6b5 Let the contextmenu be activated from tapandhold in regular template in order to be able to get the contextmenu in some touch devices 2023-06-12 16:27:34 +02:00
nathan
d7f7c1fa03 Et2DateDuration: Fix value of "" caused NaN 2023-06-12 08:24:34 -06:00
nathan
16767d91a6 Skip disabled widgets in iterateOver
This fixes disabled widgets returning their value unexpectedly, and ID collisions when we have 2 widgets with the same ID, but disable one.
2023-06-12 08:24:22 -06:00
nathan
5427e220e4 Et2DateDuration: Use integers for duration when we have a separate box for each duration, float when there's one box 2023-06-12 08:24:14 -06:00
nathan
9535cd9801 Api: Fix egw.copyTextToClipboard() to work in popups too 2023-06-12 08:21:58 -06:00
ralf
7579b07b42 fix SQL error creating or deleting a user when admin accounts list is sorted by ID (account_id) 2023-06-12 15:23:25 +02:00
ralf
1acb12c6a2 fix SQL error creating or deleting a user when admin accounts list is sorted by ID (account_id) 2023-06-12 15:23:06 +02:00
ralf
7799ef9a97 fix lots of warnings filling zpush logs 2023-06-09 18:30:09 +02:00
ralf
608963aa9b fix lots of warnings filling zpush logs 2023-06-09 18:28:57 +02:00
nathan
9313156daa Api: Adjust max_lang_time when saving custom messages so they're available right away 2023-06-09 09:40:34 -06:00
hadi
9c4d1a9fb7 Let the contextmenu be activated from tapandhold in regular template in order to be able to get the contextmenu in some touch devices 2023-06-09 10:44:26 +02:00
nathan
aa2570f2ea * Api: Fix custom etemplates were still used after deletion 2023-06-08 11:32:03 -06:00
nathan
492993e78e Avoid some PHP warnings
- Undefined array keys
- Undefined class variables
- Passing null to string functions
2023-06-07 13:54:17 -06:00
ralf
956d56f450 fix PHP TypeError: implode(): Argument #2 ($array) must be of type ?array, int given 2023-06-07 20:09:16 +02:00
ralf
f16cfd45fe fix PHP TypeError: implode(): Argument #2 ($array) must be of type ?array, int given 2023-06-07 20:05:27 +02:00
hadi
48e0bd0e32 Apply nowrap white-space only to et2-link used in et2-link-list in order to let its content be shown in multiple lines 2023-06-06 14:45:35 +02:00
nathan
88153eddf5 Et2Link: If only breaking on a certain character, don't break on dash either (in addition to space) 2023-06-05 11:03:51 -06:00
hadi
ea5ef58904 Fix links styling to get correctly ellipsis text overflow 2023-06-05 11:03:15 -06:00
nathan
4e957510bc API: Fix incorrect updateComplete override 2023-06-05 10:53:28 -06:00
nathan
572cc61315 Et2Link: Wait for link title before we say update is complete
Overriding _getUpdateComplete() lets us wait for whatever conditions we want, so we can wait on the Promise from link_title()
2023-06-05 10:53:17 -06:00
nathan
dd4a2de988 API: Fix incorrect updateComplete override 2023-06-05 10:43:52 -06:00
nathan
2946316d0b Et2Date: Fix timeonly does not update value the first time when manually typing a new value 2023-06-03 21:57:03 +02:00
nathan
0f145323b2 Et2Date: Fix timeonly does not update value the first time when manually typing a new value 2023-06-02 09:50:59 -06:00
nathan
846852ca22 Et2Link: Wait for link title before we say update is complete
Overriding _getUpdateComplete() lets us wait for whatever conditions we want, so we can wait on the Promise from link_title()
2023-06-02 09:05:14 -06:00
nathan
2eeff5ca38 Et2Link: If only breaking on a certain character, don't break on dash either (in addition to space) 2023-06-01 09:19:05 -06:00
hadi
c808fbb1ad Fix swipe and popup contextmenu being triggered accidentally in touch devices 2023-06-01 16:29:52 +02:00
hadi
58763c8c64 Attempt to keep all touch devices happy for touch/swipe actions in mobile view(specifically in listviews) 2023-06-01 16:29:14 +02:00
hadi
8e0a3a2755 Fix swipe and popup contextmenu being triggered accidentally in touch devices 2023-06-01 15:28:42 +02:00
nathan
09cd777677 Et2Link: Fix unwanted indent in front of et2-link-string, fix expose in et2-link-list 2023-05-30 09:12:02 -06:00
hadi
9dfd6f0766 Attempt to keep all touch devices happy for touch/swipe actions in mobile view(specifically in listviews) 2023-05-30 16:33:29 +02:00
nathan
27cd57d428 Et2Link: Fix unwanted indent in front of et2-link-string, fix expose in et2-link-list 2023-05-26 11:36:25 -06:00
hadi
f671009c3d Fix egw message in login page is not removable 2023-05-26 14:29:44 +02:00
ralf
710b28396d fix error reported ldap instead of ldaps 2023-05-26 08:55:24 +02:00
ralf
1d26a1cb6c fix error reported ldap instead of ldaps 2023-05-26 08:55:05 +02:00
hadi
a8a5a14b12 Fix egw message in login page is not removable 2023-05-25 16:34:28 +02:00
nathan
8221ed217f Api: Wait for et2-link-strings to finish updating before we continue with the print
Avoids printing before the link titles are loaded
2023-05-25 08:09:46 -06:00
hadi
a56adc7fcc Make ellipsis link titles used in link-list readable by using hover tooltip 2023-05-25 14:08:35 +02:00
hadi
7f8909ebd4 Make ellipsis link titles used in link-list readable by using hover tooltip 2023-05-25 14:07:58 +02:00
hadi
b0d3570892 Apply nowrap white-space only to et2-link used in et2-link-list in order to let its content be shown in multiple lines 2023-05-25 13:42:20 +02:00
hadi
b2dd9f65b6 Apply nowrap white-space only to et2-link used in et2-link-list in order to let its content be shown in multiple lines 2023-05-25 13:14:28 +02:00
ralf
44df2023e5 fix array_map(): Argument #2 ($array) must be of type array, int given 2023-05-25 09:45:33 +02:00
ralf
6dc1ae4b23 fix array_map(): Argument #2 ($array) must be of type array, int given 2023-05-25 09:45:11 +02:00
nathan
9a5ed1efa3 Api: Wait for et2-link-strings to finish updating before we continue with the print
Avoids printing before the link titles are loaded
2023-05-24 15:54:36 -06:00
hadi
c3b00ad81f Fix links styling to get correctly ellipsis text overflow 2023-05-24 14:54:26 +02:00
hadi
10d3f40973 Fix links styling to get correctly ellipsis text overflow 2023-05-24 14:40:19 +02:00
hadi
fdc8b9b997 Fix null being represented into remark's column in links 2023-05-24 13:40:41 +02:00
hadi
023e45ebc0 Fix null being represented into remark's column in links 2023-05-24 13:38:13 +02:00
ralf
26ee5bc446 Changelog for 23.1.20230524 2023-05-24 12:12:21 +02:00
ralf
040183e68e Changelog for 23.1.20230524 2023-05-24 11:58:49 +02:00
Ralf Becker
b5d668ed5b pending translations from our translation server 2023-05-24 11:52:54 +02:00
Ralf Becker
68aaad7f87 pending translations from our translation server 2023-05-24 11:52:22 +02:00
ralf
25b95ce18c fixing the fix, item is a regular (not DOM-)object and not undefined 2023-05-23 13:23:40 -06:00
ralf
828d8d8e19 fix TypeError: item.querySelector is not a function 2023-05-23 13:23:29 -06:00
nathan
ee14d1d39f Et2Select: If the value contains something that does not pass validation, show it as an invalid tag so it can be removed. 2023-05-23 13:14:46 -06:00
hadi
b44133052c Do not activate statustext for mobile template 2023-05-23 12:38:56 +02:00
hadi
f23c562105 Do not activate statustext for mobile template 2023-05-23 12:36:04 +02:00
hadi
1d7d73e8e7 Add more hints for file drag out 2023-05-22 16:46:43 +02:00
hadi
dbe12256bc Add more hints for file drag out 2023-05-22 16:41:58 +02:00
hadi
e792763812 Fix the title for file drag out 2023-05-22 15:41:06 +02:00
hadi
ffdf6df09c Make et2link file type draggable 2023-05-22 15:40:53 +02:00
hadi
bc598f9e53 Make files in link list draggable 2023-05-22 15:40:30 +02:00
hadi
a8212062a1 Cleanup hover color after drag action ended 2023-05-22 15:33:59 +02:00
nathan
c850ec8f7e Reconfigure Link to include icon & comment for easier drag & drop 2023-05-22 15:26:53 +02:00
hadi
26e52d6692 Fix the title for file drag out 2023-05-22 15:22:11 +02:00
ralf
69294ebbee * Mail: searching in compose now ignores custom fields as they might lead to unexpected results 2023-05-22 12:58:25 +02:00
hadi
b5f46c1bad Make et2link file type draggable 2023-05-22 11:45:56 +02:00
hadi
58fd61ad31 Cleanup hover color after drag action ended 2023-05-22 11:45:17 +02:00
StefanU
f4a36f73d8 Update about.svg 2023-05-22 08:53:54 +02:00
StefanU
d528353501 Update about.svg
Size corrected
2023-05-22 08:53:54 +02:00
ralf
593640edd7 Revert "Et2Select: If the value contains something that does not pass validation, show it as an invalid tag so it can be removed."
Stalls calendar :(

This reverts commit 94d43a0a28.
2023-05-22 07:54:03 +02:00
nathan
b238124e01 Api: Make sure the current user is always in the list of accounts sent to client 2023-05-19 08:34:29 -06:00
nathan
94d43a0a28 Et2Select: If the value contains something that does not pass validation, show it as an invalid tag so it can be removed. 2023-05-19 08:33:43 -06:00
nathan
79d22e17a0 Fix missing spinner icons in date 2023-05-19 08:16:02 -06:00
ralf
8b22a258c6 fixing the fix, item is a regular (not DOM-)object and not undefined 2023-05-19 09:26:21 +02:00
ralf
71278c8041 fix TypeError: item.querySelector is not a function 2023-05-19 09:20:47 +02:00
nathan
00b48f3b04 Api: Make sure the current user is always in the list of accounts sent to client 2023-05-18 14:46:20 -06:00
nathan
bea2659fe3 Api: Fix egw.copyTextToClipboard() to work in popups too 2023-05-18 13:47:15 -06:00
StefanU
bd88bc0b36
Update about.svg 2023-05-18 21:19:09 +02:00
StefanU
0bd650d492
Update about.svg
Size corrected
2023-05-18 21:16:46 +02:00
StefanU
9a5f399555
Add update icons
svg as replacement for png
2023-05-18 21:05:13 +02:00
StefanU
af13703250
Add update icons
svg as replacement for png
2023-05-18 21:04:28 +02:00
nathan
be25869a1d Et2Select: If the value contains something that does not pass validation, show it as an invalid tag so it can be removed. 2023-05-18 10:48:33 -06:00
nathan
ab3a75a7b3 Focus test WIP 2023-05-18 08:08:18 -06:00
nathan
8da10cf863 Reconfigure Link to include icon & comment for easier drag & drop 2023-05-17 16:55:05 -06:00
nathan
89483d80d3 Api: Fix missing spinner icons 2023-05-17 10:08:34 -06:00
hadi
d4e9de9cfa Fix typo 2023-05-17 16:31:11 +02:00
hadi
7caa6ad4ac Make files in link list draggable 2023-05-17 16:30:09 +02:00
ralf
376039c9b6 German translation for new phrase "You may drag files out to your desktop" 2023-05-17 14:36:10 +02:00
ralf
f15f26da8b German translation for new phrase "You may drag files out to your desktop" 2023-05-17 14:35:42 +02:00
hadi
65eff6de91 * Filemanager: Fix drag out files to desktop 2023-05-17 14:19:51 +02:00
hadi
b528c4c22a * Filemanager: Fix drag out files to desktop 2023-05-17 14:10:34 +02:00
ralf
7ebab3f83e fix stall with no/wrong server-timezone 2023-05-17 10:09:02 +02:00
ralf
3ed73db7be fix stall with no/wrong server-timezone 2023-05-17 10:08:44 +02:00
ralf
d8bf9d6343 fix stall, if no/wrong user timezone set in prefs 2023-05-17 10:05:06 +02:00
ralf
230b27bc8a fix stall, if no/wrong user timezone set in prefs 2023-05-17 10:02:49 +02:00
ralf
7753dc97ce fix stall when timezone in prefs is stored as empty array 2023-05-17 09:04:36 +02:00
ralf
2f4d0cd85a fix stall when timezone in prefs is stored as empty array 2023-05-17 09:04:09 +02:00
nathan
da42a3052c Filemanager: Fix new file button stopped working after being readonly
Moved option render inside render() since we have it, simplifys things a lot
2023-05-17 08:31:36 +02:00
nathan
da2413a07f Et2Select: Fix missing options filter to handle option groups too 2023-05-17 08:30:38 +02:00
StefanU
c5ec9ff8d8 Update drop.svg
Size corrected, colour corrected, file optimised
2023-05-17 08:05:00 +02:00
StefanU
d56e481470 Update configure.svg 2023-05-17 08:05:00 +02:00
StefanU
77f7cfb47b Update cancelled.svg
Size corrected, colour corrected, file optimised
2023-05-17 08:05:00 +02:00
StefanU
ecb720292a Update cancel.svg
Size corrected, colour corrected, file optimised
2023-05-17 08:05:00 +02:00
StefanU
740f4e30b0 Update archive.svg
Size corrected, colour corrected, file optimised
2023-05-17 08:05:00 +02:00
StefanU
6a782fc67a Update about.svg 2023-05-17 08:05:00 +02:00
StefanU
8685bdd862 Update check.svg
Size corrected, colour corrected, file optimised
2023-05-17 08:05:00 +02:00
StefanU
1ec3f59d8f Update unlock.svg 2023-05-17 08:05:00 +02:00
nathan
ffb9fa706a Filemanager: Fix new file button stopped working after being readonly
Moved option render inside render() since we have it, simplifys things a lot
2023-05-16 15:01:24 -06:00
StefanU
37e9d8ec58
Update drop.svg
Size corrected, colour corrected, file optimised
2023-05-16 20:58:25 +02:00
StefanU
57b409c8c9
Update configure.svg 2023-05-16 20:48:19 +02:00
StefanU
6991592c6b
Update cancelled.svg
Size corrected, colour corrected, file optimised
2023-05-16 20:45:19 +02:00
StefanU
9f91d9bbdc
Update cancel.svg
Size corrected, colour corrected, file optimised
2023-05-16 20:41:42 +02:00
StefanU
066e3279a8
Update archive.svg
Size corrected, colour corrected, file optimised
2023-05-16 20:33:20 +02:00
StefanU
8a2d6a1a88
Update about.svg 2023-05-16 20:24:37 +02:00
StefanU
97fb8f1c5b
Update check.svg
Size corrected, colour corrected, file optimised
2023-05-16 20:22:08 +02:00
StefanU
9c35d241b9
Update unlock.svg 2023-05-16 19:45:50 +02:00
nathan
6ecb2d8cf9 Et2Select: Fix missing options filter to handle option groups too 2023-05-16 11:02:20 -06:00
nathan
eddcc97163 Et2ButtonIcon: Fix missing icons
There was a conflict between Et2InputWidget setting the widget name & image
2023-05-16 10:02:34 -06:00
StefanU
2d634f1b6d Update share.svg 2023-05-16 07:54:08 +02:00
StefanU
280de5a535 Update lock.svg 2023-05-16 07:52:37 +02:00
StefanU
eda50d8508 Update share.svg 2023-05-16 07:52:37 +02:00
StefanU
11fb09d788
Update share.svg 2023-05-15 20:36:35 +02:00
StefanU
8a72d1c340
Update share.svg 2023-05-15 20:25:32 +02:00
StefanU
bdd72424c9
Update lock.svg 2023-05-15 20:09:22 +02:00
nathan
a364060fc8 Fix confirm dialog sometimes mis-placed initiating button in value 2023-05-15 11:09:02 -06:00
hadi
96b4d4a406 Fix toolbar icons are no longer shown in mobile theme 2023-05-15 17:29:42 +02:00
hadi
60643d86b2 Fix toolbar icons are no longer shown in mobile theme 2023-05-15 17:29:13 +02:00
nathan
3bd2ee5aad Fix confirm dialog sometimes mis-placed initiating button in value 2023-05-12 10:06:55 -06:00
nathan
7237a265ef Fix focussed select does not close when it loses focus
Mail reply moves focus from To: to body, and To dropdown stayed open
2023-05-12 10:45:20 +02:00
nathan
ef58242afe Some "invalid option" fixes:
- Don't notify user, just log it to the console
- Fix calendar owner filtered out not loaded options
2023-05-11 14:27:18 -06:00
hadi
829f3cecb3 Make sure that we are literally marking the row's content before deactivating drag action 2023-05-11 20:37:06 +02:00
nathan
d5d217c589 Some "invalid option" fixes:
- Don't notify user, just log it to the console
- Fix calendar owner filtered out not loaded options
2023-05-11 10:56:42 -06:00
nathan
91b94a5126 Et2Select: Use same z-index for search box as dropdown 2023-05-10 13:43:46 -06:00
nathan
471a5a60b9 Et2Select: Fix selection of first option when no value provided, broken by 134cd9d249 2023-05-10 09:41:16 -06:00
nathan
2179423b03 Fix filtered out invalid values were still left in value 2023-05-10 09:31:27 -06:00
nathan
d94c2f7c09 Fix invalid option check did not work for multiple 2023-05-10 09:30:41 -06:00
nathan
73c65cd8a7 Et2Select: Remove values that use options that aren't there to avoid the validation error 2023-05-10 09:30:30 -06:00
nathan
01ab3ab85a Et2Select: Fix selection of first option when no value provided, broken by 134cd9d249 2023-05-10 09:19:43 -06:00
ralf
aecaba5931 also allow calling Mail\Avatar::getAvatar() without an email 2023-05-10 16:10:19 +02:00
ralf
5d35fcd990 also allow calling Mail\Avatar::getAvatar() without an email 2023-05-10 16:09:05 +02:00
hadi
104ecb2732 Make sure that we are literally marking the row's content before deactivating drag action 2023-05-10 14:56:53 +02:00
ralf
c322242c90 fix Mail\Avatar::getLavatar(): Argument #1 ($address) must be of type string, null given 2023-05-10 14:26:27 +02:00
ralf
498aebe192 fix Mail\Avatar::getLavatar(): Argument #1 ($address) must be of type string, null given 2023-05-10 14:25:32 +02:00
ralf
3930c7a917 * Mail: performance improvements for huge addressbooks by caching avatars 2023-05-10 10:48:53 +02:00
ralf
ace7a22c2f * Mail: performance improvements for huge addressbooks by caching avatars 2023-05-10 09:49:54 +02:00
nathan
820bd35689 Fix filtered out invalid values were still left in value 2023-05-09 14:28:02 -06:00
nathan
3e1b1e56dc Fix focussed select does not close when it loses focus
Mail reply moves focus from To: to body, and To dropdown stayed open
2023-05-09 14:04:02 -06:00
ralf
f8dca83bf3 * eSync/Mail: fix wrong timezone conversation if user-timezone is different from server-timezone 2023-05-09 17:16:40 +02:00
ralf
db8bd9dcc3 * eSync/Mail: fix wrong timezone conversation if user-timezone is different from server-timezone 2023-05-09 17:06:05 +02:00
nathan
134cd9d249 Fix invalid option check did not work for multiple 2023-05-09 08:57:55 -06:00
ralf
3836e9a646 * Mail: work around Firefox not offering an option to not ask again installing EGroupware as mail-handler 2023-05-09 10:48:39 +02:00
ralf
e2580aedea * Mail: work around Firefox not offering an option to not ask again installing EGroupware as mail-handler 2023-05-09 10:47:35 +02:00
ralf
d045fde07c * Mail: searching in compose now ignores custom fields as they might lead to unexpected results 2023-05-08 15:13:12 +02:00
StefanU
f217183f2e Update logo164x164.svg
File optimisation
2023-05-08 08:12:16 +02:00
StefanU
1b03b7bd38 Update kfm_home.svg
New version...
2023-05-08 08:12:16 +02:00
StefanU
85d94b1420
Update logo164x164.svg
File optimisation
2023-05-06 20:11:33 +02:00
StefanU
eb5c0947c3
Update kfm_home.svg
New version...
2023-05-06 20:06:24 +02:00
nathan
4ce6bb3f3d Et2Select: Remove values that use options that aren't there to avoid the validation error 2023-05-05 11:08:47 -06:00
hadi
c79e5c7e8b Fix readonly links styling 2023-05-04 12:42:09 +02:00
hadi
a8e83ad59f Fix readonly links styling 2023-05-04 12:41:30 +02:00
nathan
9aa4c6f403 Et2DateDuration: Fix value of "" caused NaN 2023-05-03 08:42:15 -06:00
hadi
e6f78d9d75 Fix typo related to the commit 8e8c664e95 2023-05-03 15:35:50 +02:00
hadi
6588759497 Fix typo related to the commit 8e8c664e95 2023-05-03 15:33:23 +02:00
ralf
e58e221e2a Changelog for 23.1.20230503 2023-05-03 13:04:25 +02:00
ralf
b9ca30376e Changelog for 23.1.20230428 2023-05-03 13:04:25 +02:00
ralf
d311102a98 Changelog for 23.1.20230503 2023-05-03 11:51:46 +02:00
ralf
3c337eccd5 Changelog for 23.1.20230428 2023-05-03 11:41:34 +02:00
nathan
8fb8df30cf Fix wrong name shown for Et2EmailTag if multiple contacts share the same email address 2023-05-03 11:28:49 +02:00
ralf
91672abce1 fix error trying to submit 2023-05-03 11:21:27 +02:00
ralf
d11c74f0bc fix error trying to submit 2023-05-03 11:16:47 +02:00
nathan
46b7c5258b Skip disabled widgets in iterateOver
This fixes disabled widgets returning their value unexpectedly, and ID collisions when we have 2 widgets with the same ID, but disable one.
2023-05-02 14:21:03 -06:00
nathan
ab195097f5 Et2DateDuration: Use integers for duration when we have a separate box for each duration, float when there's one box 2023-05-02 14:17:40 -06:00
hadi
2a18d8ec48 Fix broken 3dots menu for nm in mobile theme 2023-05-02 18:54:49 +02:00
hadi
8e8c664e95 Fix broken 3dots menu for nm in mobile theme 2023-05-02 18:53:42 +02:00
Ralf Becker
2770b66558 pending translations from our translation server 2023-05-02 13:17:56 +02:00
Ralf Becker
e7b340990a pending translations from our translation server 2023-05-02 13:17:09 +02:00
StefanU
c85dda8b81 Update attach.svg
File optimisation, => 32px, colour corrected
2023-05-02 09:20:03 +02:00
StefanU
5494c0290e Update link.svg
File optimisation, colour corrected
2023-05-02 09:20:03 +02:00