Commit Graph

4123 Commits

Author SHA1 Message Date
Hadi Nategh
fd976ea1dc Backport commit r48051, committed by Nathan Gray. Indicate merge class to use for mail, fixes infolog placeholders not known 2014-08-14 07:41:24 +00:00
Nathan Gray
f6bca11f4f Add an additional format to parse times in the formatY-m-dTHⓂ️s for insertion into spreadsheets, fixes warning when merge printing "Unable to parse date ... left as text" 2014-08-12 23:19:39 +00:00
Nathan Gray
4944b1a1fb Fix double encoded & in merge functions 2014-08-12 17:48:47 +00:00
Nathan Gray
694a63d1f4 Indicate merge class to use for mail, fixes infolog placeholders not known 2014-08-12 16:58:07 +00:00
Nathan Gray
cc04f0b89c Create & use a flag 'no_actions' to disable actions for sum rows 2014-08-11 23:13:02 +00:00
Nathan Gray
0fa3ad831b Fix no longer working 'None' category option 2014-08-11 22:50:38 +00:00
Nathan Gray
f7589316e0 Make sure options are there before looking inside, avoids a potential error in filter options 2014-08-11 20:27:56 +00:00
Ralf Becker
8d8b7b6d4a fix for somehow empty etemplate request content, giving an error when (or after) sending mail 2014-08-11 15:13:38 +00:00
Ralf Becker
672297df94 fix for somehow empty etemplate request content, giving an error when (or after) sending mail 2014-08-11 15:12:34 +00:00
Hadi Nategh
82fa583951 svn commit -m 'Backport commit 47925 committed by NathanGray. Handle num_rows set by application:
- Don\'t overwrite num_rows setting if the application sets it for some reason
- If num_rows is 0, don\'t get the initial rows server side
- If num_rows is 0 and the initial rows are missing, trigger an update right away to get them asyncronously.' etemplate
2014-08-04 09:39:44 +00:00
Hadi Nategh
59bc2e04a8 Backport commit 47924 committed by NathanGray. Trigger a clear event on the etemplate DOMContainer when the etemplate is cleared, so app code can listen for it. 2014-08-04 09:22:38 +00:00
Hadi Nategh
d2ba902fd1 Make sure we are getting the current appName 2014-07-30 15:50:05 +00:00
Hadi Nategh
ef6aed6579 Make sure we are getting the current appName 2014-07-30 15:12:05 +00:00
Nathan Gray
5b873215b0 - Fix expanding closed projects by passing parent ID
- Fix missing milestone icon
2014-07-29 21:51:37 +00:00
Nathan Gray
795e2cdb9c Refine cache check conditions, rows is always empty by this point. 2014-07-29 21:46:01 +00:00
Hadi Nategh
6689ca64f7 SelectAccount with type "none" should get sel_options but it should be readonly if user has no admin access. Fix infolog delegation for admin users with selectAccount type "none" selected 2014-07-29 17:39:35 +00:00
Klaus Leithoff
b0933c32b9 fix typo, that prevented the correct split of TreeNodeOpenItems 2014-07-29 12:51:56 +00:00
Klaus Leithoff
235888ad88 fix typo, that prevented the correct split of TreeNodeOpenItems 2014-07-29 12:50:39 +00:00
Nathan Gray
8a70df4df8 Handle num_rows set by application:
- Don't overwrite num_rows setting if the application sets it for some reason
- If num_rows is 0, don't get the initial rows server side
- If num_rows is 0 and the initial rows are missing, trigger an update right away to get them asyncronously.
2014-07-28 21:00:39 +00:00
Nathan Gray
9851a8a6ef Trigger a clear event on the etemplate DOMContainer when the etemplate is cleared, so app code can listen for it.
This allows a 'et2_unload' sort of processing.
2014-07-28 20:51:49 +00:00
Hadi Nategh
67aa23f11b As we replace spaces with + for those account ids which contain spaces, therefore we need to do the same for getting request-id too. 2014-07-28 15:43:36 +00:00
Hadi Nategh
40aa20eaa2 As we replace spaces with + for those account ids which contain spaces, therefore we need to do the same for getting request-id too. 2014-07-28 15:29:49 +00:00
Ralf Becker
c6783d8b8e document hack, to work around birthdays changing one day for each time they are stored 2014-07-25 12:32:34 +00:00
Ralf Becker
787d5385ba * Addressbook/all apps: dates change every time they get stored (temporary fix as conditions causing that are not clear) 2014-07-25 10:17:38 +00:00
Ralf Becker
970331b97c * Addressbook/all apps: dates change every time they get stored (temporary fix as conditions causing that are not clear) 2014-07-25 10:17:15 +00:00
Ralf Becker
a4f21dbf00 quiten permanennt error_log in etemplate_widget::run, if widget is disabled, and therefore not running 2014-07-24 09:39:27 +00:00
Ralf Becker
1266aeb52a quiten permanennt error_log in etemplate_widget::run, if widget is disabled, and therefore not running 2014-07-24 09:38:55 +00:00
Hadi Nategh
e7da57c6cb Backport commit 47853 by ng, Fix detached date label 2014-07-23 12:54:02 +00:00
Ralf Becker
6a7258e98e Don't clear children if tabs attribute not provided 2014-07-23 09:15:00 +00:00
Ralf Becker
0abcd5e68f Refine select option searching when the id is like parent[selectbox].
- only search parents when the ID has multiple parts
- fix case when selectbox was in the sel_options arrayMgr, but had no options, parent was used as select options
2014-07-23 09:14:24 +00:00
Ralf Becker
8eb1cb6ee6 Extend run() method for tabs:
- Apply additional tabs once in run() before applying the method, instead of in each method
- Apply tab readonlys to disable tabs, so they can be skipped
2014-07-23 09:06:51 +00:00
Nathan Gray
b6b660ee16 Fix detached date label 2014-07-22 22:22:09 +00:00
Nathan Gray
8f0513c99e Don't clear children if tabs attribute not provided 2014-07-22 21:33:41 +00:00
Nathan Gray
101eee1e1c Extend run() method for tabs:
- Apply additional tabs once in run() before applying the method, instead of in each method
- Apply tab readonlys to disable tabs, so they can be skipped
2014-07-22 21:26:03 +00:00
Nathan Gray
3176500c83 Refine select option searching when the id is like parent[selectbox].
- only search parents when the ID has multiple parts
- fix case when selectbox was in the sel_options arrayMgr, but had no options, parent was used as select options
2014-07-22 21:21:33 +00:00
Nathan Gray
6dfd8c616b - Add special handling for ids like something[{}] to only send select options once
- Don't need to process or send options for account, it is done client side now.
2014-07-22 14:18:33 +00:00
Nathan Gray
bd41288788 - Add special handling for ids like something[{$row}] to only send select options once
- Don't need to process or send options for account, it is done client side now.
2014-07-21 16:31:10 +00:00
Ralf Becker
7cf1d222ae log not compiling PHP expressions as warning, as they are most likely caused by wired content, eg. filenames containing a $ 2014-07-21 15:27:33 +00:00
Ralf Becker
6a0c7e2c3d log not compiling PHP expressions as warning, as they are most likely caused by wired content, eg. filenames containing a $ 2014-07-21 15:27:15 +00:00
Nathan Gray
59e76d78c5 Fix extra options not used in read only select-account 2014-07-21 14:51:47 +00:00
Ralf Becker
346215edc6 setting an (unlikely) custom delimiter, to allow to use "," in value, eg. folder-name, IF values are specified as array 2014-07-21 12:58:08 +00:00
Ralf Becker
3c6130f7e6 setting an (unlikely) custom delimiter, to allow to use "," in value, eg. folder-name, IF values are specified as array 2014-07-21 12:57:32 +00:00
Ralf Becker
994d10fcde * Admin/API: remove no longer fully supported method to not "store session-id in cookie", it is the safer default anyway 2014-07-18 10:03:18 +00:00
Ralf Becker
9712e625db * Admin/API: remove no longer fully supported method to not "store session-id in cookie", it is the safer default anyway 2014-07-18 10:02:51 +00:00
Ralf Becker
d810ea5132 removed not used setting of application via GET parameter 2014-07-18 08:49:04 +00:00
Ralf Becker
4fc6102162 removed not used setting of application via GET parameter 2014-07-18 08:48:37 +00:00
Ralf Becker
bd2a9c6f45 fix an other CSP error, caused by json-responses send eg. from get_rows method on a GET request, filemanager opened in iframe from tracker 2014-07-17 17:26:25 +00:00
Ralf Becker
f49bbab26f fix an other CSP error, caused by json-responses send eg. from get_rows method on a GET request, filemanager opened in iframe from tracker 2014-07-17 17:26:00 +00:00
Hadi Nategh
344c2f2064 Correct "Save as Zip" icon in link widget contxt menu 2014-07-17 14:23:51 +00:00
Hadi Nategh
ce6ac57f34 Correct "Save as Zip" icon in link widget contxt menu 2014-07-17 14:21:55 +00:00
Klaus Leithoff
5b6913baf3 use self::get_id on multiple selects and radio AND regard its output-format 2014-07-17 12:40:08 +00:00
Klaus Leithoff
0aa84dbaa1 use self::get_id on multiple selects and radio AND regard its output-format 2014-07-17 12:39:20 +00:00
Ralf Becker
a425342d82 change @import (r47700-r47709) 2014-07-17 10:47:02 +00:00
Nathan Gray
9c57ef865d If link has a target, use that.
Causes linked files to be opened in new browser tab.
2014-07-16 15:03:09 +00:00
Nathan Gray
2785aed59c Check if content is there before trying to look inside it.
Fixes "TypeError: Cannot read property 'id' of null" from mail dialog
2014-07-16 14:42:28 +00:00
Ralf Becker
5a6221ee63 fixed problems reported by LFRZ 2014-07-16 12:18:43 +00:00
Ralf Becker
9fa607c3bd fixed problems reported by LFRZ 2014-07-16 12:18:04 +00:00
Stefan Reinhardt
6cf9017c26 pixelegg / less
change @import....
2014-07-16 11:31:26 +00:00
Ralf Becker
3557cd4ac8 fixed PHP Strict Standards: Declaration of etemplate_widget_*::set_attrs() should be compatible with etemplate_widget::set_attrs() 2014-07-16 06:51:33 +00:00
Nathan Gray
762d8a9c09 If link has a target, use that.
Causes linked files to be opened in new browser tab.
2014-07-15 19:19:36 +00:00
Hadi Nategh
061b4b9954 Specify et2_file and et2_vfs_btn classes for et2_link_to widget 2014-07-15 16:21:38 +00:00
Nathan Gray
10aa07b2fc Fix extra options not used in read only select-account 2014-07-15 15:40:22 +00:00
Nathan Gray
67390bbcfa Add HTML5 drag support for Chrome for all files in link lists 2014-07-14 22:34:55 +00:00
Nathan Gray
3b915de4cb Grid row action enhancements:
- If row has a key 'id', set the egwActionObject id to match instead of just row_[i]
- Pass the row content in egwActionObject's data, so it's available during action processing
2014-07-14 20:47:52 +00:00
Nathan Gray
051befced5 Don\t 2014-07-14 14:18:32 +00:00
Nathan Gray
4104f793b2 Call applyFilters() function instead of setting directly, which skipped change detection.
Fixes selection not cleared when applying a favorite.
2014-07-14 14:11:41 +00:00
Nathan Gray
94b726f883 Don't remove request from POSTs, etemplate is still active client side.
Fixes etemplates stop working after downloading a file (merge print, zip, etc.)
2014-07-14 12:03:04 +00:00
Ralf Becker
c54e53d405 fixed PHP Strict Standards: Declaration of etemplate_widget_*::set_attrs() should be compatible with etemplate_widget::set_attrs() 2014-07-14 10:02:47 +00:00
Nathan Gray
8a36e40b10 Call applyFilters() function instead of setting directly, which skipped change detection.
Fixes selection not cleared when applying a favorite.
2014-07-14 09:59:02 +00:00
Ralf Becker
d1d743e4b9 fixed broken regular expression for multiple comma-separated values (dash in character class has to be last character!) 2014-07-13 09:15:29 +00:00
Ralf Becker
f011a6c3d1 fixed broken regular expression for multiple comma-separated values (dash in character class has to be last character!) 2014-07-13 09:14:58 +00:00
Hadi Nategh
80f1abf3a2 Try to use xmlDoc.responseText as xmlDoc.response might not be available in IE 2014-07-11 16:50:38 +00:00
Hadi Nategh
ef9409294c Try to use xmlDoc.responseText as xmlDoc.response might not be available in IE 2014-07-11 16:49:45 +00:00
Hadi Nategh
1471def4b2 No need to use Microsoft.XMLDOM for IE anymore, since IE 7+ supports XMLHttpRequest object 2014-07-11 16:08:01 +00:00
Hadi Nategh
8f0dba15fe No need to use Microsoft.XMLDOM for IE anymore, since IE 7+ supports XMLHttpRequest object 2014-07-11 16:07:02 +00:00
Hadi Nategh
b95f53f073 Try to get attribute with getAttribute method, IE does not support element dataset 2014-07-11 15:53:58 +00:00
Hadi Nategh
3e56f38995 Try to get attribute with getAttribute method, IE does not support element dataset 2014-07-11 15:52:43 +00:00
Hadi Nategh
9ae80ec4c1 Use getAttribute to get the data-group value to use it for toolbar sorting.\n\r -Fix group is undefined error opening mail in IE10 2014-07-11 12:57:47 +00:00
Hadi Nategh
a0bf45da93 Use getAttribute to get the data-group value to use it for toolbar sorting.\n\r -Fix group is undefined error opening mail in IE10 2014-07-11 10:38:36 +00:00
Ralf Becker
673ff54ebb Brazilian translations from Guilherme Rocha guilherme-at-gf7.com.br 2014-07-09 19:41:32 +00:00
Ralf Becker
dbc6dbd7e1 Brazilian translations from Guilherme Rocha guilherme-at-gf7.com.br 2014-07-09 19:40:43 +00:00
Ralf Becker
2a6168a1c2 * Addressbook: fixed sorting of category tree
fixes not displayed cat-tree and validation error introduced with r47575
2014-07-09 11:18:47 +00:00
Nathan Gray
48016d16c0 Fix category tree sorting 2014-07-08 23:15:49 +00:00
Nathan Gray
a5b9173fc9 Handle multiple buttons in a single custom field 2014-07-08 20:13:51 +00:00
Nathan Gray
210ebb5706 - Add $$user/primary_group$$ common placeholder
- Add calendar_owner/<contact> sub-placeholders, including primary_group
2014-07-08 19:05:09 +00:00
Nathan Gray
b7a6e53163 * Added context menu to download all linked files in one zip file
As long as there are 2 or more files linked to the entry, you can download them all as a zip using the link list context menu.
2014-07-08 16:51:01 +00:00
Ralf Becker
2de7931700 * Admin: custom-fields were not loaded, account was edited from admin not addressbook 2014-07-08 15:05:20 +00:00
Ralf Becker
55722f4520 change default value for unset checkbox to be in line with old eTemplate, using "" that evaluates in PHP and javascript to false and not string "false" 2014-07-08 11:31:57 +00:00
Hadi Nategh
a1285433bd Add alert method to et2_dialog in order to create alert dialog with optional arguments message, title and dialog type. Additionally, remove an not used argument from et2_dialog.confirm method 2014-07-08 10:29:59 +00:00
Ralf Becker
3d79bae09a Brazilian translations from Guilherme Rocha guilherme-at-gf7.com.br 2014-07-08 09:57:42 +00:00
Nathan Gray
ed6013605e If a custom field is added to the column list, invalidate known columns to get all new data back, in case app did not send custom fields in the first request. Fixes needing to reload after displaying custom fields in nextmatch 2014-07-08 04:21:02 +00:00
Nathan Gray
7a1d2dc0cd Customfield lists need to create all widgets, so they can be enabled if the column is changed without re-doing the whole thing 2014-07-08 03:37:47 +00:00
Nathan Gray
760dc4b1d3 When update(true), also invalidate record change detection, to re-fetch all known rows 2014-07-08 03:35:55 +00:00
Nathan Gray
7eb528ee1f Instead of replacing a dropped image with an error image, we'll remove it, and pass the image to the first et2_file widget with a drop target. That's not ideal, but it should work for us in most cases until CKEditor fully supports drag and drop.
(Firefox only)
2014-07-07 20:48:35 +00:00
Nathan Gray
08c10a70aa Update Resumable from github, fixes some problems with setting et2_file value to a list of files in firefox. 2014-07-07 20:26:48 +00:00
Nathan Gray
1273955f9d Allow possibility to include select all flag in url in addition to selected IDs 2014-07-07 16:46:16 +00:00
Nathan Gray
15ddeb2a24 - Avoid duplicate ID warning by only returning the value from the matching radio button
- Fix radiobuttons where the options/values were set in the template instead of sel_options
2014-07-07 16:19:37 +00:00
Hadi Nategh
296530b320 Fix etemplate2 submit() method for those buttons which they do not have nested ids 2014-07-07 13:25:20 +00:00
Nathan Gray
9ed54eb3fd Drag & drop images don't work because of DB field sizes, so replace dropped images with error image so user knows right away it won't work. 2014-07-02 20:50:39 +00:00
Nathan Gray
4c5e36500a Fix (?) the tough bug where app tab is closed, and nextmatch autorefresh generates an error after "this.getInstanceManager() is null" 2014-07-02 15:58:00 +00:00
Hadi Nategh
2c9ffb39b9 Override attchToDOM method in selectAccount, because chosen needs to be set after widget dettached from DOM (eg. validation error) 2014-07-02 14:36:47 +00:00
Hadi Nategh
6e4c7472fc Make sure rows are bigger than 0 otherwise customfield CKEditor will get height of 0 2014-07-02 09:34:51 +00:00
Hadi Nategh
64329c4c0e Add et2_label_empty class to textbox_ro widget if there is no content for the label 2014-07-01 16:18:01 +00:00
Ralf Becker
9c01142c22 margin between radio-button and its label 2014-07-01 16:04:01 +00:00
Ralf Becker
4ac94b2c01 remove label from readonly radiobutton, as we show label of checked option as value 2014-07-01 16:03:31 +00:00
Ralf Becker
96af6b8dba removed padding from empty hbox child, eg. no postcode gives empty space in front of city in addressbook list 2014-07-01 15:56:09 +00:00
Nathan Gray
9562483697 Improvements to handle not yet existing links
- Can't view file info for non-existing file, so context menu item is disabled
- Fix setting a comment
- Fix loading class on delete & fetch title showing incorrectly
2014-07-01 00:22:13 +00:00
Nathan Gray
26f1e351f3 Apply missing font & size preferences 2014-06-30 21:28:03 +00:00
Ralf Becker
15fbd6bde8 fixed not working custom fields of type radio 2014-06-30 19:34:53 +00:00
Ralf Becker
d8b35e0a77 only join in extra table, if we really need it, to improve performance 2014-06-30 09:05:16 +00:00
Hadi Nategh
4471a45147 Add id to Add button for link-add widget 2014-06-27 14:05:00 +00:00
Hadi Nategh
7a3d0e50da Fix error undefined to_app, and jquery UncaughtTypeError happens onclick handler 2014-06-27 13:27:18 +00:00
Klaus Leithoff
b633df95ec translations from our translation server 2014-06-27 08:41:37 +00:00
Hadi Nategh
6d2582c22e Remove added indentation by accident from commit 47388 2014-06-25 16:47:07 +00:00
Hadi Nategh
cab2ccdd29 Fix widget VFS button_caption translation 2014-06-25 16:26:59 +00:00
Nathan Gray
9a36c458e6 Try to fetch title if not passed 2014-06-24 21:45:13 +00:00
Hadi Nategh
c281f19568 Active translation for attribute button_caption of VFS widget 2014-06-24 15:18:55 +00:00
Hadi Nategh
545b35de5b Declare a non declared variable which was messing with app global object 2014-06-24 12:40:25 +00:00
Ralf Becker
fe44c6bb5e fixed not allways used category color, because regular expression missed every 2. category 2014-06-24 12:39:12 +00:00
Ralf Becker
d6ce36d735 bump versions to 14.1 2014-06-24 10:00:50 +00:00
Nathan Gray
866fbb65bc - Refresh filter even if it's not dirty, since it changed
- Bind delete prompt to right click on link while avoiding conflict with action system
2014-06-23 17:17:34 +00:00
Hadi Nategh
3ec98b4d6f Switch of the specified FF red border validation indicator 2014-06-23 14:43:12 +00:00
Ralf Becker
ffae12e240 * all apps: custom-fields are now stored in own egw_customfields table (no more limit on number), site configurations get now JSON serialized 2014-06-23 14:35:22 +00:00
Ralf Becker
ae19dff1d4 ignore stepMismatch html5 validation errors, the are generated for every float number 2014-06-23 14:31:47 +00:00
Ralf Becker
d4bb8a00a9 move et2_call method to egw.js to have it always available at window scope (it is NOT et2 specific), maybe we find a better/nicer place for it 2014-06-23 08:10:40 +00:00
Nathan Gray
ec476a96d7 Fix column selection not saved if columnselection pref setting had 'nextmatch-' prefix already.
Fixes infolog columns not being saved
2014-06-18 18:29:52 +00:00
Nathan Gray
0cffb46eab Handle not existing links passed from server 2014-06-17 17:14:05 +00:00
Nathan Gray
2b1215af8b If history tab is currently active, finish loading historylog widget immediately 2014-06-16 15:17:30 +00:00
Nathan Gray
aa249cb6a2 Add function to get currently active tab index 2014-06-16 15:16:59 +00:00
Ralf Becker
1cb00eb580 for unknown apps eg. "/apps/InfoLog" use "filemanager" 2014-06-16 13:19:07 +00:00
Hadi Nategh
2ff1107b78 Ignore favorite preferences which are not correctly serialized, and somehow are stroed in database. At the moment we just ignore them, but they stays in database, need to be watched closely to find the cause, though. 2014-06-13 16:03:16 +00:00
Ralf Becker
c0cfe3f320 readonlys was not namespaced in old eTemplate, therefore if we dont find data under current namespace, we look into parent (if there is anything namespaced, we will NOT look for parent!) 2014-06-12 14:22:39 +00:00
Stefan Reinhardt
dd689d5790 Search - in Header Navigation
etemplate =  result + more
2014-06-12 10:34:39 +00:00
Ralf Becker
0b6fa2785b allow to use numbers for attributes of type string, silently convert them to strings, fixes not working blur values for quantity in timesheet 2014-06-12 08:25:31 +00:00
Ralf Becker
febc2f8763 re-added validation for null as it is needed/used by widget-types other then duration 2014-06-12 07:51:41 +00:00
Nathan Gray
f3ba7f692f Use custom field name to toggle row visibility, not order, as order doesn't always work. 2014-06-11 18:03:19 +00:00
Stefan Reinhardt
da0cb798e5 Search - in Header Navigation
etemplate =  result + more
2014-06-11 14:50:21 +00:00
Hadi Nategh
6b91baf0cc Make sure fav. sorted list is always an array, and append new favorite added to fav. sorted list 2014-06-11 14:42:27 +00:00
Ralf Becker
5a32a7d622 widgets should NEVER return null (eg. for empty), as server-side $preserv will overwrite it 2014-06-11 09:14:43 +00:00
Ralf Becker
5d3d61e5b0 only care for regular expression starting with /, as everything else is to ambigious eg. "replys[$row][reply_comment]" has a $ followed by an r, which is also first char of that expression 2014-06-11 07:59:45 +00:00
Nathan Gray
22b6084224 Fix link entry clear button not actually clearing the value if the value was entered via code instead of user 2014-06-10 21:35:39 +00:00
Nathan Gray
a4335f01a0 Hide custom field lines from nextmatch if they have no value 2014-06-10 20:22:43 +00:00
Nathan Gray
f8cb222580 Style gantt links as invalid based on if the start/end dates are correct for the link type 2014-06-10 18:52:50 +00:00
Nathan Gray
d1d11c63df Styles for gantt progress &weekend hightlight 2014-06-10 17:41:09 +00:00
Nathan Gray
42547b8153 Gantt chart styling
- Include progress as text on left side of bar
- Highlight weekends
2014-06-10 17:38:02 +00:00
Nathan Gray
315a0d4ac0 Pass along width attribute, so it can be passed to chosen 2014-06-09 22:55:39 +00:00
Nathan Gray
a9e37042cb Use js type for query & select callbacks and implement setter functions 2014-06-09 19:28:31 +00:00
Nathan Gray
fa8963c8b4 Consider "0" (string zero) equal to false instead of true, as some PHP values come as strings. 2014-06-09 19:27:02 +00:00
Nathan Gray
0a1c0e5135 Do disabled check before grid name expansion, so disabled=!@grid_id will work 2014-06-09 19:24:48 +00:00
Ralf Becker
60a32879d4 first try to implement/activate client-side validation for numbers, thought not fully working yet 2014-06-05 15:48:29 +00:00