Commit Graph

515 Commits

Author SHA1 Message Date
Nathan Gray
da16cd319c Set default export-<appname> definitions as the site-wide default if no default is set 2011-03-14 23:07:46 +00:00
Nathan Gray
49bf54aace More agressive filtering on schedule options - all subsequent options start filtered 2011-03-14 20:55:42 +00:00
Nathan Gray
93241a65c5 Merge recursive to preserve sub-arrays 2011-03-14 20:39:54 +00:00
Nathan Gray
4b18c05ec3 Fix definition filter to allow admins access to their own private definitions 2011-03-14 17:35:01 +00:00
Ralf Becker
01fe133e60 removed accidently commited disable of automatic install 2011-03-11 16:05:13 +00:00
Ralf Becker
ed60695cd5 * fixed not working scheduled import from vfs 2011-03-11 16:03:08 +00:00
Nathan Gray
bd03ec245f Remove some deprecated ereg functions 2011-03-09 18:18:26 +00:00
Nathan Gray
a58a7892c9 Adjust the export to remove some fields not needed, only export owner if there is one. 2011-03-09 15:47:11 +00:00
Stefan Becker
7e094f9e67 German translation 2011-03-07 12:24:34 +00:00
Nathan Gray
738966ca68 Better handling of shifting to avoid deleted fields 2011-03-04 19:02:41 +00:00
Nathan Gray
a47732d530 Make category name->id translator able to handle any IDs that are passed 2011-03-04 18:53:02 +00:00
Ralf Becker
5344d0a0ae * ImportExport: fixed translation default value not working (eg. "1|>one||2|>two||other") 2011-03-04 17:42:53 +00:00
Stefan Becker
9d44d57a52 translations for importexport 2011-03-04 13:32:28 +00:00
Nathan Gray
c99e804d8d Add 'All custom fields' field option, that will cause all custom fields to be exported 2011-03-02 17:08:43 +00:00
Nathan Gray
908b4f0e63 Add English translation for nextmatch export preference 2011-02-28 17:43:24 +00:00
Nathan Gray
398185f525 Don't hide exports from admins, even if exporting is disabled for users. 2011-02-24 15:47:43 +00:00
Nathan Gray
9bd38bb45f Resize popup if step changes size 2011-02-24 00:13:42 +00:00
Nathan Gray
34354a2a6b Change config options, admin can now allow users to create their own definitions, and can choose which users are allowed to share their definitions with others 2011-02-23 23:44:20 +00:00
Nathan Gray
75ba2fc475 Hide exporting for admins too, if they've disabled exporting site-wide 2011-02-23 16:45:19 +00:00
Stefan Becker
c4165cbe55 add German translation and fixed some typos 2011-02-23 13:23:44 +00:00
Nathan Gray
127976b1ef Enforce export limit for csv exports 2011-02-22 18:17:13 +00:00
Nathan Gray
a019e94e55 Respect global setting export_limit = 'no' -> disable exporting 2011-02-22 17:43:33 +00:00
Nathan Gray
838f4664f1 * Add ability for users to define their own definitions
- Permissions set by admin in the Site configuration
2011-02-22 17:13:03 +00:00
Nathan Gray
880dd678d1 Set update_cat to saved value on first load 2011-02-14 16:04:18 +00:00
Nathan Gray
1cedf20503 Wrap definition constructor in a try/catch to catch & ignore permission errors 2011-02-14 15:54:28 +00:00
Nathan Gray
c6e285558e Fix for unable to clear translation field 2011-02-11 18:34:24 +00:00
Nathan Gray
ededa8f092 Use _bo is_permitted() function for consistency, fixes occasional exceptions due to group permissions 2011-02-11 18:03:44 +00:00
Nathan Gray
94c616bf12 Catch exception thrown when trying to instanciate a definition the user has no rights for, and discard it. 2011-02-10 20:45:32 +00:00
Nathan Gray
2ca0c13b34 Cast to array to prevent warnings 2011-02-08 16:01:55 +00:00
Nathan Gray
37417195eb Add auto-import of definitions in appname/setup/*.xml 2011-02-03 18:09:39 +00:00
Nathan Gray
a0d7bde2fb By default, don't show apps user doesn't have access to any definitions for 2011-02-03 16:49:49 +00:00
Nathan Gray
ae035df727 Actually use definition permissions 2011-02-03 16:42:03 +00:00
Nathan Gray
ae07ff2331 Use new sidebox_all hook to add importexport links to other apps' sideboxes 2011-02-03 16:32:03 +00:00
Oscar Manuel Gómez Senovilla
28d2b6b072 Update for translations in trunk 2011-01-30 12:53:49 +00:00
Nathan Gray
bd28fed482 - Hide expert options until they get worked out
- Add caching function has_definitions() to see if there are any definitions for the user
- Fix permissions check
2011-01-28 19:44:24 +00:00
Nathan Gray
4aed0e32da Nicer English translation of appname 2011-01-27 18:03:27 +00:00
Nathan Gray
fa974d0a50 Remove 'some nice text' on export dialog 2011-01-27 16:41:48 +00:00
Nathan Gray
a62484d106 If there's only one export definition, select it by default 2011-01-26 01:00:41 +00:00
Nathan Gray
ba485f1338 Look in setup directory for pre-defined definitions, importexport sub-directory is no longer used. 2011-01-26 00:28:14 +00:00
Nathan Gray
0efb958fa1 Load the translations for the app for headings 2011-01-12 17:02:43 +00:00
Nathan Gray
fd4315fec3 Fix multi-domain handling on command line 2011-01-11 23:31:44 +00:00
Nathan Gray
8615b3c9fa Translation of field labels 2011-01-11 22:09:25 +00:00
Nathan Gray
5e9d01e176 Check if get_errors() exists before calling it to prevent fatal error 2011-01-11 18:06:28 +00:00
Nathan Gray
af918a2945 Use common::egw_exit() instead of just exit for extra cleanup 2010-12-20 22:00:19 +00:00
Nathan Gray
6246b1b58b Try to avoid extra output after file 2010-12-17 18:24:24 +00:00
Nathan Gray
806a5aec91 - Escape double qoutes
- Allow to pass extra select/lookup values to convert()
2010-12-17 16:39:11 +00:00
Klaus Leithoff
6afc97236e * ImportExport: Replace CRLF with LF so excel does not break lines early (myStylite#974) 2010-12-16 14:49:13 +00:00
Nathan Gray
8f05a9f411 Revert 33366, replacing \n doesn't help Excel 2010-12-15 22:51:07 +00:00
Nathan Gray
bbd874dc05 Replace all CRLF in values with CR so Excel doesn't break lines early. 2010-12-10 21:11:15 +00:00
Klaus Leithoff
b72fb5e76b code alignment 2010-11-24 11:25:37 +00:00
Nathan Gray
46a90c13f9 Fix field indexing in import definition wizard (causes confusion in translations) 2010-11-23 20:52:50 +00:00
Nathan Gray
fdfff16b55 Make the type icon in the definition list clickable, it will 'run' that definition 2010-11-23 20:15:51 +00:00
Nathan Gray
8df0a6527f Add toggle all checkbutton to field select step 2010-11-23 19:41:37 +00:00
Nathan Gray
61c0654d17 Fix custom field multi-select export into one field 2010-11-23 15:29:57 +00:00
Ralf Becker
3ccf4a3587 fixed not working importexport: preferences can NOT store arrays, they need to be serialized before 2010-11-23 15:25:22 +00:00
Nathan Gray
4769db9539 Cast preference to array to prevent blanks 2010-11-23 15:15:48 +00:00
Nathan Gray
b522daf825 Keep user choices for next time they use the same export definition 2010-11-23 00:48:16 +00:00
Nathan Gray
84e99bbe25 Fix export conversion options 2010-11-23 00:02:40 +00:00
Nathan Gray
22441f3112 Add new option to convert to human friendly values 2010-11-22 23:34:06 +00:00
Nathan Gray
d8f79014f8 Fix merging of custom fields with provided fields 2010-11-19 15:55:08 +00:00
Nathan Gray
dcf7ce486f - Fix bug in field conversion where sometimes the first record would not be changed
- Only try to convert dates / times if they are timestamps.  Some apps convert to user time already (calendar series)
2010-11-09 19:07:47 +00:00
Nathan Gray
47ff785588 - Add an option for export header: use field names or human labels
- Fix missing first field
2010-11-09 18:14:49 +00:00
Nathan Gray
3b286a2fed Add more custom fields for parsing into conversion fields, move cf parsing into seperate function 2010-11-08 17:17:21 +00:00
Nathan Gray
c22440eea8 Add select & link entry conversion to custom fields 2010-11-05 20:22:28 +00:00
Nathan Gray
58231dfad1 Call functions in common statically 2010-11-05 19:31:53 +00:00
Nathan Gray
5fc2ffaba6 Use server's temp directory instead of /tmp
Only pass filename, entire path is not needed (and a security issue)
2010-11-05 19:29:45 +00:00
Nathan Gray
70d0e8dad1 Add export data conversion to a parent class so it can be used by other apps 2010-11-04 17:26:30 +00:00
Nathan Gray
edf5759a50 Check protocol to prevent direct file system access. Use VFS to access files on the server instead. 2010-10-19 17:29:11 +00:00
Nathan Gray
e4884335af Add option to choose to update or replace categories 2010-10-19 17:27:10 +00:00
Nathan Gray
845d8f533c Make sure field_mapping is an array before trying to index into it 2010-10-13 17:26:34 +00:00
Nathan Gray
6c0d3b2c81 Fix accidentally commited debug code 2010-10-12 22:46:43 +00:00
Nathan Gray
7f540ad450 - Add ability for plugin to specify mimetype
- Fix basic export csv wizard header option (wasn't loaded properly)
2010-10-12 22:45:55 +00:00
Nathan Gray
762d2469b0 Allow plugins to supply complete info for selections 2010-10-12 21:59:55 +00:00
Nathan Gray
dd8df67229 - Mess with export dialog so it actually works with definitions
- Add base csv export wizard
2010-10-07 23:05:25 +00:00
Nathan Gray
eb5fac04e9 Implement conversion class so the app's plugin can provide extra conversion functions 2010-10-06 22:33:52 +00:00
Nathan Gray
44dbdb1864 Close and delete sample CSV file when done with it 2010-10-06 22:19:48 +00:00
Nathan Gray
79db13ec5e Allow auto-map from file to update existing mapping 2010-09-28 22:54:35 +00:00
Nathan Gray
53401c63c0 Add a feature to try to auto-detect the field mapping 2010-09-28 21:07:20 +00:00
Nathan Gray
a3bd170aa4 - Fix bug preventing unsetting a field mapping
- Don't re-resize popup window (Fix for IE unable to resize?)
2010-09-23 19:35:52 +00:00
Nathan Gray
7bf2053a54 Add 'Select' default entry to condition field column also 2010-09-17 14:15:20 +00:00
Nathan Gray
ae7158086a Fix add_option calls 2010-09-16 21:21:00 +00:00
Nathan Gray
d01499df7b Change UI a little to have actions default to 'Select' when no action is selected 2010-09-16 17:17:29 +00:00
Nathan Gray
5ed66702ba Improve detection & removal of empty conditions 2010-09-14 22:18:56 +00:00
Nathan Gray
3b46acda8f Fixes to get selectboxes working for IE (Stylite #8186) 2010-09-14 21:17:29 +00:00
Nathan Gray
f5f47c4ad1 Take some extra measures to get space for column headers without destroying the keys in the map 2010-09-08 20:57:06 +00:00
Nathan Gray
117299fc3b Fix (hopefully) for IE unable to change popup size 2010-09-08 16:25:32 +00:00
Nathan Gray
6d552b26d1 Remove call to missing function - doesn't look needed, it works without. 2010-09-08 16:19:29 +00:00
Ralf Becker
50c43deec9 updating verson to 1.8 2010-09-05 15:24:34 +00:00
Oscar Manuel Gómez Senovilla
2f0df89b4f Tracker #2703 2010-08-25 16:14:29 +00:00
Ralf Becker
587ffbcf28 fixed fatal error: unsupported operand typ 2010-08-16 14:57:36 +00:00
Ralf Becker
1c7e2f6e27 - implemented limited support for sidebox options in preferences
- opening import/export dialogs as popups, as they use egw window.close()
2010-07-08 08:11:44 +00:00
Ralf Becker
f3017cdeba adding "regular" import/export functions (import & export) to preferences: allows to use them without being admin 2010-07-07 17:11:10 +00:00
Nathan Gray
d5131a6d92 Make sure etemplate.js gets loaded 2010-06-14 07:45:54 +00:00
Ralf Becker
ca6e75f620 fixed wrong step name and readded content of onLoad body attribute via ajax, thought this still does NOT fix all problems (javascript errors etemplate.js seems not to be loaded) 2010-06-13 07:46:51 +00:00
Nathan Gray
3e24e1c7d6 - Don't try to include js, that variable isn't there anymore
- Special handling for the upload (step 30) to do a full form submit
2010-06-11 15:44:36 +00:00
Oscar Manuel Gómez Senovilla
a4d96bd6fa Tracker #2591 2010-06-09 21:11:42 +00:00
Klaus Leithoff
d3602af16c translation provided by mkk 2010-05-20 08:07:03 +00:00
Stefan Becker
f8a0c3ccec some translations 2010-04-23 12:50:41 +00:00
Klaus Leithoff
5b3c05a616 translations provided by mkk 2010-04-12 11:21:49 +00:00
Nathan Gray
7f85ff40e5 Remove debug 2010-04-06 14:21:54 +00:00
Ralf Becker
80a1fb5a53 "fixed not working plugin cache (on tree level): callback has to be public, as it's get called static by an other class (egw_cache)" 2010-04-03 10:31:57 +00:00
Nathan Gray
076137ec85 Fix js error in IE: make sure button has onclick handler and call xajax_eT_wrapper_init() 2010-03-31 16:27:57 +00:00
Nathan Gray
aa8ec8856e Comment out cache call until I get it worked out 2010-03-31 15:07:47 +00:00
Nathan Gray
e66b0d5373 Fix missed class rename 2010-03-31 14:32:41 +00:00
Nathan Gray
fb5a3e11a8 - Add blacklisting so plugin scan will skip certain files or directories
- Add caching to plugin scan, default is to rescan once a day
- Remove lingering unneeded requires
2010-03-29 17:38:54 +00:00
Ralf Becker
c4ec7ad53f fixed old classname 2010-03-29 13:10:01 +00:00
Nathan Gray
1d04bc2d65 Fix directory scan to only scan installed apps 2010-03-26 14:57:44 +00:00
Nathan Gray
04c83e9b14 Don't scan applications that are not available to admin. 2010-03-25 19:24:36 +00:00
Nathan Gray
a6887ae908 - Change file/class names to match new naming conventions
- Change spelling of wizzard to wizard
2010-03-22 15:09:26 +00:00
Nathan Gray
54b4454d51 Add some base classes to make it easier for other applications to implement importing CSVs
To use them, you need to create two files in the app/importexport directory, 'class.import_appname_csv.inc.php' and 'class.wizzard_import_appname_csv.inc.php'.
The minimum required files are shown below, but they can be modified as needed to override the basics and add capabilities.


class.import_appname_csv.inc.php:
<?php

        require_once(EGW_INCLUDE_ROOT. '/importexport/inc/class.basic_import_csv.inc.php');

        class import_appname_csv extends basic_import_csv {

                protected function import_record(&$record, &$import_csv) {
			// Handle one record here.  Handle conditions and call action() as appropriate.
			// See basic_import_csv.
                }

                protected function action($action, Array $record, $record_num = 0) {
			// Take the given action (none, insert, delete, update) etc.  as understood for your app.
			// See basic_import_csv.
                }
        }
?>

class.wizzard_import_appname_csv.inc.php:
<?php

        require_once(EGW_INCLUDE_ROOT . '/appname/importexport/class.import_appname_csv.inc.php');
        require_once(EGW_INCLUDE_ROOT . '/importexport/inc/class.wizzard_basic_import_csv.inc.php');

        class wizzard_import_appname_csv extends wizzard_basic_import_csv {
		public function __construct() {
			$this->mapping_fields = array(
				// List of destination fields available in appname
				'field' => lang('name')
			);
			$this->conditions = array(
				// List of conditions supported by import_appname_csv
				'field' => lang('name')
			);
			$this->actions = array(
				// List of actions supported by import_appname_csv
				'field' => lang('name')
			);
		}
        }
?>
2010-03-10 16:31:25 +00:00
Nathan Gray
f85abe96f8 Fix popup size for new definitions 2010-03-09 16:26:17 +00:00
Nathan Gray
3e33651c5d Change import wizard popup size, shuffle around sidebox menu to have links to import & export dialogs 2010-03-03 19:34:05 +00:00
Nathan Gray
19c710d354 A slightly prettier image for the side of the wizard 2010-03-03 18:16:46 +00:00
Nathan Gray
e395a4dfb4 Add support for reporting how many of which action (insert, update) were done when importing 2010-03-03 16:28:45 +00:00
Nathan Gray
30ce07e567 Add some results from scheduled jobs so you can see if they ran 2010-03-02 22:33:47 +00:00
Nathan Gray
ed106c431c Improve popup size 2010-03-01 23:26:38 +00:00
Nathan Gray
15a89b310d Move name step closer to start, get rid of infinite loop if you click next on last step 2010-03-01 17:30:53 +00:00
Nathan Gray
822230bf57 New classes for importing and scheduling 2010-02-25 23:14:24 +00:00
Nathan Gray
731abfd2a3 Some more work toward completion:
- Wizard now works to define input definitions; you can define the mapping, translations and conditions using the UI.  
- Added ability to schedule imports / export using async services

Still a lot of work to be done...
2010-02-25 23:13:18 +00:00
Oscar Manuel Gómez Senovilla
5eeafccba9 Recover history from rev 28562 2009-12-02 19:47:02 +00:00
Oscar Manuel Gómez Senovilla
59196cd958 Temporary removal to recover history from rev 28562 2009-12-02 19:45:24 +00:00
Oscar Manuel Gómez Senovilla
a38a004668 Move importexport lang files 2009-11-28 13:23:42 +00:00
Oscar Manuel Gómez Senovilla
a70df0ddbb Pending language updates 2009-11-24 05:51:49 +00:00
Klaus Leithoff
495c19fb95 changing old PHPGW_API_INC to EGW_API_INC in cli, adding a read function to bodefinitions, Still you cannot view or edit definitions with UI 2009-09-09 08:07:32 +00:00
Ralf Becker
232252475f patch fixing many depricated functions (eg. posix regular expressions) and features, which fill up the error_log under php5.3 (and will no longer be available under php6).
Patch is mostly created by script in egroupware/doc/fix_depricated.php in separate commit.
I do NOT advice to apply this patch to a production system (it's commited to trunk!), as the automatic modified regular expressions have a good change to break something ...
2009-06-08 16:21:14 +00:00
Ralf Becker
d268d6d816 Using static translation methods 2009-04-28 16:05:04 +00:00
Oscar Manuel Gómez Senovilla
388c515883 preparing to sync current lang files before branching for 1.6. One more commit
expected meanwhile!
2008-11-22 11:05:43 +00:00
Oscar Manuel Gómez Senovilla
7c3ab3ab8c tracker #1774, added estonian translation 2008-11-02 14:23:56 +00:00
Oscar Manuel Gómez Senovilla
504b096e06 latest update of egw translators pending work 2008-10-15 21:11:30 +00:00
Ralf Becker
3358a39461 Fixed install problems with missing php dom extension,
which is required (but not declared) by importexport:
- added requirement to importexport/setup/setup.inc.php
- gracefully fail if dom is not available
- add dom extension to rpm requirements
--> this has been reported many times on the list as "missing wiki
pages", which is caused by suppressed fatal error in importexports
default-records, stoping other apps default records to run
2008-10-14 08:42:09 +00:00
Ralf Becker
0c2d0c1ff0 "removed unnecessary and not longer working include of class.uietemplate.inc.php" 2008-10-07 13:15:53 +00:00
Ralf Becker
61a23ba829 "update API and etemplate dependency" 2008-10-07 07:17:12 +00:00
Oscar Manuel Gómez Senovilla
8ed57c413b tracker #1747 2008-10-05 19:24:49 +00:00
Oscar Manuel Gómez Senovilla
f98569ee85 Updated russian translation (#1658) and some spanish updates 2008-08-03 19:07:15 +00:00
Oscar Manuel Gómez Senovilla
77f63b4c00 updated russian translation 2008-07-29 20:40:02 +00:00
Oscar Manuel Gómez Senovilla
241e844f4b Resulting lang files after applying the "Search for new phrases" in translation tools for every app 2008-07-26 21:59:22 +00:00
Oscar Manuel Gómez Senovilla
8913855001 tracker #1476 2008-07-25 22:15:31 +00:00
Oscar Manuel Gómez Senovilla
e6a0bc30a9 tracker #1511 2008-07-25 21:22:37 +00:00
Oscar Manuel Gómez Senovilla
6826e1df64 rest of adding new translations 2008-07-24 19:31:09 +00:00
Ralf Becker
4885518b88 autoloading of addressbook classes 2008-05-10 12:06:15 +00:00
Oscar Manuel Gómez Senovilla
0bea37425d convert pending lang files for apps to utf-8 2007-11-29 23:00:48 +00:00
Oscar Manuel Gómez Senovilla
7d38810b20 migration from phpgw_ to egw_ for importexport 2007-10-14 16:50:22 +00:00
Oscar Manuel Gómez Senovilla
e5eac71f71 pending lang updates 2007-09-13 13:57:21 +00:00
Cornelius Weiß
885dd1bf84 php5.2 fixes 2007-08-30 15:46:31 +00:00
Cornelius Weiß
121a44bf71 fix for dst in cal import 2007-08-24 12:52:50 +00:00
Cornelius Weiß
c9f3b9f817 fix: not working seconds in date^-1 2007-07-06 09:42:23 +00:00
Cornelius Weiß
e7743cb87c clean fields on demand from cntl chars 2007-06-25 20:47:38 +00:00
Oscar Manuel Gómez Senovilla
99771edd87 language updates 2007-06-24 21:55:08 +00:00
Cornelius Weiß
d63a7d622d fix: skip empty lines, even if conversion fills (empty) record
add: custom_strtotime in importexport_helper_functions
2007-06-23 12:07:18 +00:00
Cornelius Weiß
d972768efc make defautl-records complay with the (hard to understand) setup-rules
after a phonecall with ralf i do understand 1% more of how setup works  :-)
2007-06-21 22:03:50 +00:00
Cornelius Weiß
1c7e180154 imrpove dry-run and cli 2007-06-21 18:07:31 +00:00
Cornelius Weiß
e004216f15 fixed defautl-records 2007-06-21 15:09:51 +00:00
Cornelius Weiß
288c28a658 fixed category handling.
allow to preserv cat if record is updated
added dry-run option
2007-06-21 14:02:03 +00:00
Cornelius Weiß
b6a28b8090 performance fix 2007-06-09 22:23:29 +00:00
Cornelius Weiß
7a3e571376 - reworked conversions backend in importexport_helper_functions
- reworked plugin interfaces. 
	- charset is now an attribut of plugin_options only
	- import / export function itselve is not static any more
- whiped out silly phpdoc tags generated by umbrello (kde uml modeler)
- reworked representation of plugin_options for definitions
- many fixes in uiexport and export_csv
- lang updates
2007-06-09 15:36:30 +00:00
Cornelius Weiß
b4b6d5abef massive improvements for the imports 2007-06-07 22:08:38 +00:00
Oscar Manuel Gómez Senovilla
688dd5f46f Latest lang updates 2007-05-31 14:49:26 +00:00
Ralf Becker
14fc433fcf updated application versions 1.4 and dependencies accordingly (API is still 1.3.xxx 'til the first RC) 2007-04-30 09:10:36 +00:00
Ralf Becker
ec80b68626 php5.2+ requires the interfaces also to declare the default params (or not to use them in implementations) 2007-04-15 11:40:12 +00:00
Ralf Becker
dcef824803 merged Connys 1.4 commit to trunk: fix not working csv_import 2007-04-06 08:03:04 +00:00
Oscar Manuel Gómez Senovilla
0117e53ee2 remaining added lang files 2007-04-05 22:58:00 +00:00
Cornelius Weiß
a9b1257487 the mappings from old export framework can be importet now 2006-11-16 11:05:42 +00:00
Cornelius Weiß
2b3ce8669b changed export ui to be focused on definitions 2006-11-16 11:04:09 +00:00
Cornelius Weiß
9e61aaf90d propset svn:keyword Id 2006-11-10 15:38:31 +00:00
Cornelius Weiß
b7d62c7b09 initial import of my importexport work,
export is quite clean at the moment, but import needs lots of work, 

all the stuff is not really for production yet, but i import it now, so that the guy from metaways can also work on it.
most pending tasks:
- implement conversions based on regular expressions
- implement options of plugin
- rework import part (mostly ui)
2006-11-10 15:30:01 +00:00