Commit Graph

3104 Commits

Author SHA1 Message Date
Ralf Becker
511325570a fix empty accounts addressbook after 20.1.20210125 update 2021-01-26 12:51:33 +02:00
Ralf Becker
1259ae8d04 More automatic timezone handling schema for new code (hopefully not breaking existing code):
1. SO converts all timestamps to Api\DateTime objects using Api\DateTime::server2user($ts, 'object')
 - Api\Storage and Api\Storage\Base class do that automatic if using 'object' as $timestamp_type constructor parameter
 - if using just Api\Db you need to iterate over your selects manually and apply Api\DateTime::server2user($ts, 'object')
 - timestamps are store in DB in server timezone and above conversation honors that and additionally set the user TZ
2. Rest of the app should keep all timestamps as Api\DateTime objects
 - direct comparison works for Api\DateTime (and PHP \DateTime) as __toString() method automatic converts to UTC timestamps
 - do NOT convert them to timezone-less timestamps and no further timezone conversation needed for output with eTemplate
3. eTemplate2 converts automatic to user timezone for displaying dates and times
 - you need to use <date-time ... data_format="object"/> to get Api\DateTime objects back from eTemplate!
4. Api\Db converts automatic to server timezone when quoting DateTime objects for integer or timestamp columns
5. only output other then eTemplate might need to set a timezone different from the user TZ before calling $ts->format()
2021-01-26 11:16:42 +02:00
Ralf Becker
a2fde92c89 Changelog for 20.1.20210125 2021-01-25 14:23:37 +02:00
Ralf Becker
8425f380fe some fixes for int/float widget: server-side was not expanding min/max attribute and client-side considers empty min/max attr as 0 2021-01-22 17:24:55 +02:00
Ralf Becker
fe320938e5 document EGroupware timestamps and remove own __toString() method to be able to compare objects 2021-01-22 15:18:39 +02:00
Ralf Becker
3eaab63bfa new $output_mode=5 for exec to allow validating client-side created templates, see SmallParT\\Questions\\ajax_answer() 2021-01-19 14:55:27 +02:00
Hadi Nategh
4e95ac86a8 Add some jquery dialog options 2021-01-14 16:57:28 +01:00
Ralf Becker
b892c54797 allow to format link-registry entries "add", "edit", ... as "url" parameter for actions 2021-01-14 15:59:03 +02:00
nathangray
208817054b * Etemplate: Avoid "Uncaught TypeError: Cannot read property ‘length’ of undefined"
This was happening when an app was open but not currently active and had a push update with no type.
2021-01-13 09:08:53 -07:00
Hadi Nategh
a777610c2d Fix htmlarea resize 2021-01-07 11:46:09 +01:00
Hadi Nategh
85b14052ea Make blockquotes breakable in html editor 2021-01-06 14:06:21 +01:00
nathangray
cf9c366d2b Etemplate: Bugfixes
- Early exit for arrayMgr().getEntry() if nothing is found, avoids returning all data
- Remove debugger from selectbox
2021-01-04 11:00:10 -07:00
nathangray
5c10576b3b Don't event set sort order if it hasn't changed 2021-01-04 09:43:54 -07:00
Ralf Becker
e588d63291 allow *-wildcard in egw:uses path eg. "/smallpart/js/overlay_plugins/*.js" 2021-01-03 21:06:45 +02:00
Ralf Becker
5bcbde4f88 * LDAP/Addressbook: use accounts filter from setup for accounts addressbook too 2020-12-29 19:37:21 +02:00
nathangray
0a95588642 Preference needs this to not get changed here, otherwise validation doesn't find what it needs 2020-12-22 11:54:31 -07:00
nathangray
6af3e37bed * Etemplate: Add context menu action on linked files to copy them somewhere else
Also, update vfsSelect to use request(), so it processes the additional stuff in response so we can have a success message.
2020-12-21 13:53:24 -07:00
nathangray
5b5539584a Etemplate: Fix tooltip didn't work on select+tag widget 2020-12-21 10:04:24 -07:00
nathangray
93b64235a2 Etemplate: Fix customfield prefix attribute length assumption 2020-12-17 10:07:50 -07:00
Hadi Nategh
467a9cad42 WIP darkmode theme: Implement darkmode switch for mobile view 2020-12-17 17:20:04 +01:00
nathangray
8910983c8e Etemplate: Fix for some attributes not getting set 2020-12-17 09:17:38 -07:00
Ralf Becker
24ff2dd0fc Changelog for 20.1.20201217 2020-12-17 09:16:34 +01:00
Ralf Becker
b8edbd159e guard against mail account looses all accounts it is valid for 2020-12-17 08:31:39 +01:00
Hadi Nategh
f21ac58c87 Introduce dark/light mode theme switch into framework 2020-12-15 20:24:25 +01:00
Ralf Becker
7011faba18 pending changes from our translation server 2020-12-15 18:57:33 +01:00
Ralf Becker
5fae437a52 * Setup: fix no accounts found for SQL instances
in setup without an active user, no grants existed, seemed no problem before, maybe caused by contact sharing
2020-12-15 18:10:37 +01:00
nathangray
c301c1b194 Etemplate: Fix read-only selectAccount would always add new values causing doubles 2020-12-15 09:41:02 -07:00
Alexandros Sigalas
2a333be92d Added tooltip in multiselect selectbox widget 2020-12-10 08:55:05 -07:00
Hadi Nategh
cde6c10e05 Add Segoe font family into HTMLEditor 2020-12-09 13:17:37 +01:00
Ralf Becker
93fb74503d limit number of returned rows on link query by default to 100 2020-12-07 14:31:10 +01:00
Hadi Nategh
c8020e6456 Do not query server if there's no actual taglist query, fix fatal error "Memory exhaustion" 2020-12-07 10:58:42 +01:00
Hadi Nategh
e317645291 * Addressbook: fix 'undefined' title shown for some contact links opened in CRM view tabs 2020-12-03 18:19:25 +01:00
nathangray
1dcdac1fe1 Try to avoid some "Illegal offset type" warnings 2020-12-02 11:07:24 -07:00
Hadi Nategh
d957ed41d0 Implement an alarm callback for countdown widget 2020-12-02 16:54:50 +01:00
Ralf Becker
5d6965a2e9 Changelog for 20.1.20201202 2020-12-02 10:00:05 +01:00
Hadi Nategh
bd8a78505b Add new option to countdown widget inorder to hide empty values 2020-11-30 14:35:28 +01:00
nathangray
3e371ea51f Etemplate: Don't try to expand src if it is empty 2020-11-24 10:24:36 -07:00
Hadi Nategh
54eb66fd30 Add onFinish callback to countdown widget and style it 2020-11-24 13:46:05 +01:00
Hadi Nategh
65b24440a0 Implement widget countdown timer 2020-11-23 21:11:19 +01:00
nathangray
522fca6344 Etemplate: Apply sort order (to UI) if server sends it 2020-11-23 10:19:11 -07:00
Ralf Becker
aa62a5ea3e also run Egw::__destruct() explicit for notifications 2020-11-22 11:50:20 +01:00
Ralf Becker
d759e4b5a9 * Tracker: fix empty notification mail, if ticket was opened by following a link in notification mail 2020-11-21 18:55:39 +01:00
Ralf Becker
dabf3ac3a4 * API: call async-services via HTTP to fix diverse caching problems 2020-11-19 11:22:37 +01:00
nathangray
9bc4c41941 Api: Clear sorting with 'No filters' favorite 2020-11-16 10:57:04 -07:00
Hadi Nategh
09c0d12f0e Fix error trim is not a function from commit bac5c2e83b 2020-11-13 13:50:53 +01:00
nathangray
bac5c2e83b Etemplate: If key is empty / not set, don't try to explode it 2020-11-12 16:29:57 -07:00
nathangray
15084c8439 Etemplate: Use the actual template attribute if set for action processing, instead of always using the deprecated options attribute 2020-11-12 14:41:23 -07:00
nathangray
eb7a03b191 Etemplate: Limit sortable to just the grid's immediate rows, excluding rows in nested grids 2020-11-10 13:41:24 -07:00
nathangray
1ba23feb9c Etemplate: Fix nextmatch controller destroy() left some references
AJAX responses would then try to use them after the etemplate was destroyed, and fail.
2020-11-09 09:44:40 -07:00
Hadi Nategh
e549b6fcd9 Use replace() instead of replaceAll() as it's not supported in older browser versions 2020-11-09 11:10:18 +01:00