Commit Graph

466 Commits

Author SHA1 Message Date
Hadi Nategh
73499db1c7 WIP mail inline image
- Define static methods for resolving inline images from CID, based on types
- Fix not showing inline images on reply
2015-05-15 14:00:37 +00:00
Hadi Nategh
f94610e6df Fix a typo 2015-04-27 13:42:45 +00:00
Hadi Nategh
53363be626 Implement mail integration to an existing ticket 2015-04-20 14:31:21 +00:00
Hadi Nategh
aa7edce3b4 Some fixes on mail integration:
- Fix save as raw eml file and send it as attachment
- Fix mail_import in infolog,tracker and calendar does not include raw mail eml attachment as link
- Some IDE clean up for mail and tracker
2015-04-17 09:39:22 +00:00
Hadi Nategh
23000b1ff7 Fix calendar item's group in mail context menu 2015-04-15 12:28:43 +00:00
Hadi Nategh
b7c6be226d WIP of mail integration
-Centralize mail functionality of mail message integration in mail module
-Some clean up of mail_import in infolog and tracker apps
-Use hook registery in order of an app uses mail integration services
-Implement mail import into calendar
2015-04-15 11:23:59 +00:00
Klaus Leithoff
e3d4a685af use ENT_SUBSTITUTE on htmlspecialchars to harden display of message as source 2015-04-02 08:48:34 +00:00
Klaus Leithoff
9bfe86633c make sure we are talking to the correct server when importing messages 2015-03-27 14:51:41 +00:00
Klaus Leithoff
0dca52bc3f on importMessage, beware of serverID:: that is preceeding the folder of the importdestination 2015-03-27 12:59:03 +00:00
Ralf Becker
5887bc4313 * Mail, Filemanager: use now same handling, pdf, text or html are opened now in popup, fixes viewing of attachments using mobile theme 2015-03-25 17:48:24 +00:00
Hadi Nategh
89a9ea4bb1 Some more WIP of attachment mime handling 2015-03-24 11:40:06 +00:00
Ralf Becker
ffceb37973 WIP attachment handling via mime-registry 2015-03-24 09:43:38 +00:00
Klaus Leithoff
f7f5662e10 fix for function identity_name to use the same logic on missing identity values (like ident_realname and ident_email) as iterator on identities; if no ident_email is present use the users email-address, if still empty use acc_imap_username if it passes a simple test on qualifying as email address 2015-03-20 11:01:29 +00:00
Klaus Leithoff
1b184f4063 offer additional option for search to search whole message (TEXT); up til now only Message (BODY) was selectable 2015-03-19 14:47:43 +00:00
Klaus Leithoff
109b10f5b1 * Mail: deal with folderstructure issues when working with shared folders (others or shared) on constructing the mail foldertree 2015-03-10 14:08:11 +00:00
Hadi Nategh
9ae9ae7274 Implement mobile template for mail index:
- Do not create Splitter for mobile template
- Fix extra_iframe for displaying sieve rules covers mail tree when it is display:none (eg.happens in idots)
- Improve mail app performance browsing with mobile device
2015-02-27 14:47:27 +00:00
Klaus Leithoff
3ef17e277f add missing translations for emptying spam/junk folder; fix setting folder status after voiding spam/junk folder content 2015-02-19 13:41:40 +00:00
Klaus Leithoff
acb4f11d24 * Mail: feature to allow to void the (configured) spam/junk folder on right-click action on foldertree 2015-02-19 12:01:18 +00:00
Ralf Becker
9a633cab48 fix PHP Fatal error: Cannot pass parameter 3 by reference 2015-02-16 08:30:50 +00:00
Ralf Becker
36bc17a442 move code for html or javascript content-type headers from webdav to html class and use it for attachments too 2015-02-14 19:32:21 +00:00
Klaus Leithoff
d15d01a8b4 fix problem(s) with display of attachments on forward when either forwarding inline with several attachments to the forwarded message or forwarding multiple messages as attachment 2015-02-12 15:19:24 +00:00
Ralf Becker
7c4bc31306 removing an other unnecessary egw_info[flags][js_link_registry]=true 2015-02-02 19:50:20 +00:00
Klaus Leithoff
736eb6a329 bind some errorlog debug output to mail_bo:: variable 2015-01-15 11:03:07 +00:00
Klaus Leithoff
f384ac50a7 revert accidently ALWAYS looking up the mimeType with mime_magic 2015-01-09 14:11:57 +00:00
Klaus Leithoff
74a6cf6794 * Mail: fix problem on SentCopy ending up with the wrong mailaccount. Should be copied to chosen mailaccount on sending. If none is configured for folder; respect that setting. Ability to choose destination folders from starting mailaccount AND from selected mailaccount (only the original and the final selected mailaccount folders are checked and used for storing copies of the sent mail) 2015-01-09 13:56:14 +00:00
Hadi Nategh
8b5bc60235 Consider only vaction by date, missing condition from commit #51139 2015-01-07 08:15:39 +00:00
Hadi Nategh
26c6a96894 Do not show out dated vacation in vacation notice 2015-01-06 16:41:55 +00:00
Ralf Becker
cbf4051ef3 checking sieve enabled on imap-server object not account, so imap plugins can overwrite eg. always set this 2014-12-18 10:04:41 +00:00
Hadi Nategh
e07c11be85 Fix popup's window close
-Make sure window.close() closing the right egw window
-Make sure the modal popup has the opener
2014-12-12 14:21:04 +00:00
Ralf Becker
2feacbecb8 fixed sometimes not working download of all attachments via zip (name instead of filename set) and changed it to use streams 2014-12-08 18:24:08 +00:00
Ralf Becker
dd89cf84f7 parseFileIntoMailObject and parseRawMessageIntoMailObject using new egw_mailer 2014-11-26 14:08:52 +00:00
Nathan Gray
a55da7afc6 Change grouping for tree actions to move auto added copy+paste actions up 2014-11-24 15:35:02 +00:00
Klaus Leithoff
827caf674f handle error and error-messages on folder-creation. Special handling when having flat folderstructure (no prefix present) 2014-11-20 14:57:34 +00:00
Nathan Gray
a885057213 Support moving from different folders 2014-11-19 19:12:50 +00:00
Klaus Leithoff
06f8a7c829 take the extra time on failure on folderExists, when the folder seems to be not to be there 2014-11-18 15:53:53 +00:00
Ralf Becker
90a70f237f only display "Vacation notice is active" message, if it is active or by a date in future 2014-11-18 14:46:24 +00:00
Klaus Leithoff
4f2219908f make sure preview/display/saveAttachments etc. is using the ImapServer whose Id is passed on with the ID of the mail to be processed 2014-11-06 13:11:44 +00:00
Klaus Leithoff
1d48bf67d5 * Mail: on save as zip: always fetch all attachments, even inline (images); do not fatally fail on empty attachments 2014-11-06 11:42:44 +00:00
Ralf Becker
a37c884969 * Mail: fixed icons for special use folders did not use folders set in mail account 2014-11-05 16:51:55 +00:00
Hadi Nategh
a373f0f458 Fix IDE warnings 2014-10-23 13:59:12 +00:00
Hadi Nategh
dae1ce6554 Work in progress, standardization of dnd action helper styling for all apps 2014-10-17 16:34:14 +00:00
Nathan Gray
9481dab570 Drag & drop support for mail into filemanager 2014-10-16 22:41:39 +00:00
Ralf Becker
4f59ab7d81 resize import popup to regular compose size 2014-10-15 15:49:41 +00:00
Klaus Leithoff
b3441cb29b * Mail: fix copy/move of mails between accounts by making sure source and target are distinctively defined when performing the move 2014-10-14 08:51:01 +00:00
Hadi Nategh
889c8b88e8 Unset action "moveto" from display toolbar actions 2014-10-10 15:03:00 +00:00
Ralf Becker
418578dc2f remove not used attachmentsPresent value 2014-10-07 07:13:37 +00:00
Hadi Nategh
e68d5c19c6 Fix trash folder label get set by not translated trash folder name after trying to empty the trash 2014-10-06 14:59:13 +00:00
Klaus Leithoff
7f3c3e5613 cope with not set DATE from retrieved headers 2014-10-02 08:44:48 +00:00
Ralf Becker
32a6066156 * Mail: vaction notice indicator in mail showed result of other users
cache-key was identical for all uses due to a typo
2014-09-27 15:27:54 +00:00
Ralf Becker
007b632017 explicitly fetching structure in get_load_email_data, to supply it to getMessageBody and getMessageAtacchemnts, so they dont get fetcheds twice from imap-server 2014-09-25 12:43:06 +00:00
Ralf Becker
756b31ce9f remove html::purify call 2014-09-25 08:47:47 +00:00
Klaus Leithoff
3b54e4e39a disable non functional readall action on mail display popup actionmenu 2014-09-18 12:33:33 +00:00
Hadi Nategh
bdcda95930 Make the saveAsDraft and print functionality working in mail compose dialog 2014-09-09 12:08:08 +00:00
Klaus Leithoff
29ca1beb5b * Mail: fix for failed zip-download when users startfolder is not writeable
Reason: get_home_dir may fetch the users startfolder if set; if not writeable, action will fail
2014-08-26 12:37:27 +00:00
Klaus Leithoff
814f0b705c fixing assumed typo regarding:preg_match(): No ending delimiter '^' found in class.mail_ui.inc.php on line 144 2014-08-21 14:11:35 +00:00
Ralf Becker
af1bf17228 reverted accidently commited permanent error_log 2014-08-20 16:13:45 +00:00
Ralf Becker
6b243800c4 do not cache, if we dont find selectedFolder in query_context, as looking it up in tree causes mails to be cached for wrong folder 2014-08-20 16:12:19 +00:00
Ralf Becker
c670d879d5 do NOT connect to previous imap server, if user triggers a change of server 2014-08-20 14:58:12 +00:00
Ralf Becker
947f6b1551 fixed PHP Fatal error " Call to undefined method emailadmin_imapbase::subscribe" since r48090 2014-08-18 10:33:22 +00:00
Ralf Becker
e47db95be7 * Mail: fixed sometimes not working (un)subscribe of mailboxes, added better diagnostic and automatic (de)select children 2014-08-15 11:22:43 +00:00
Klaus Leithoff
1f3bb33fd8 implement some >mark all messages in folder as read< action 2014-08-14 15:38:32 +00:00
Klaus Leithoff
2df89703ca * Mail: fix problem on not applied but possibly set status filter on all message actions for flagging 2014-08-14 13:49:14 +00:00
Hadi Nategh
176c1247dc Refresh Trash folder folder-status when empty Trash action is triggered not from the Trash folder 2014-08-14 11:28:55 +00:00
Ralf Becker
589d2c9dae * Mail: keyword actions were not always displayed (eg. never for Dovecot and GMail) 2014-08-13 11:45:55 +00:00
Hadi Nategh
c60b7ae328 Revert the change on ajax_refreshVacationNotice from commit 48039. Fix not keeping other vacations of an user in the cache 2014-08-12 08:23:54 +00:00
Nathan Gray
91eabea294 Some more speed improvements for get_rows:
- Don't verify that special folders exist
2014-08-11 19:26:50 +00:00
Nathan Gray
82db8343bd Some more speed improvements for initial load:
- Avoid expensive connect in constructor for all AJAX calls (reconnect/cache used instead)
- Don't verify that special folders exist for folder tree
- Only fetch folder counts when fetchCounters flag is set, instead of always
- Avoid some et2 warnings about not existing attributes (no speed improvement, but less annoying)
2014-08-11 16:24:11 +00:00
Ralf Becker
217a2a8a11 fix for invalid operand, if vacation cache is not yet initialised 2014-08-11 14:16:26 +00:00
Hadi Nategh
cb093e7266 Avoid to call mail constructor (openConnection is an expensive operation) when client-side ask for vacationNotice.
-Check if there's no vacation cached then create mail object (try openConnection) and ask for vacation
-Add account_lid to cached vacations to distinguished them in case if the mail account was a shared profile
2014-08-11 12:14:27 +00:00
Hadi Nategh
f22b156f21 Add msg_type to callWizard to be able to set message type when we call emailadminWizard 2014-08-08 13:36:33 +00:00
Hadi Nategh
6b015a9448 Refresh the nm and lock the tree if current active folder is the Trash Folder, when calling "Empty Trash" action, otherwise no need to refresh or lock the tree 2014-08-08 10:04:49 +00:00
Nathan Gray
f19666096e Remove extra call to refresh vacation & quota, it is already done when changing folder which should be often enough. 2014-08-06 20:53:37 +00:00
Hadi Nategh
4830bcf784 Try to cache vacation for each account to avoid to connect to IMAP server if vacation rules are not changed 2014-08-06 10:56:01 +00:00
Klaus Leithoff
98cd4bbe28 using cache more efficiently; prevent clearing cache on profileChange; hook into clear_cache callable from admin 2014-08-05 11:59:06 +00:00
Hadi Nategh
19ff0d23cc Try to catch exceptions from Sieve retriveRuels, and call emailadminWizard 2014-08-05 09:26:28 +00:00
Klaus Leithoff
1bb1d18997 introduce some stuff to increase inital speed of mail-list by asyncronously calling gatherVacation and getQuotaRoot; increase cache-time on folderExists cache, trust a folder to be existant (or at least fot force the check with IMAP-Server) in get_rows 2014-08-05 08:51:26 +00:00
Hadi Nategh
22d6d80aae Add browser popup blocker checker for open_link method.
-Fix not poping up the emailadminWizard popup when an IMAP error occurrs, because of the browser blocks the popup.
2014-08-04 14:02:05 +00:00
Klaus Leithoff
7967387e3a unlock tree immediately after fetching the rows 2014-08-04 12:59:13 +00:00
Klaus Leithoff
3358da94e5 alter condion on not calling openConnection; as the refresh of quota was not working after changing a profile after rev47954 and not relyable after rev47956 2014-07-31 10:47:55 +00:00
Klaus Leithoff
14711b891f fix call for mail.mail_ui.ajax_refreshQuotaDisplay; as the refresh of quota was not working after changing a profile after rev47954 2014-07-31 10:42:56 +00:00
Hadi Nategh
8ccef246b4 Do not openConnection an extra time to imap server on constructor for changeProfile, refreshQuotaDisplay 2014-07-31 10:18:41 +00:00
Klaus Leithoff
c1c90c2621 cache subscribedFolders Call to be used in getfolderStatus; control param if to fetch subscribed Info on getFolderStatus at all; own getMailboxCounters wrapper, instead of getFolderStatus, if one needs the counters only 2014-07-31 10:10:07 +00:00
Klaus Leithoff
af749e891e * Mail: handle broken filenames (non utf8) in attachments 2014-07-29 08:13:34 +00:00
Nathan Gray
73c1f064b9 Don't send mail rows when opening mail app, but use client side cache instead.
Gives large speed improvements when changing to previously opened folders.
2014-07-28 21:21:23 +00:00
Klaus Leithoff
c013b68772 add missing flags parameter on reopening exported messages 2014-07-24 12:00:17 +00:00
Hadi Nategh
3055fe6875 Try to catch PEAR_Exception over mail_ui and callWizard if there is an exception 2014-07-18 17:18:29 +00:00
Klaus Leithoff
4e0480054b avoid php-warning regarding missing 4th argument on mail_ui::createAttachmentBlock() 2014-07-17 14:56:37 +00:00
Klaus Leithoff
24606be582 handle all text string for move and delete action success message 2014-07-17 09:59:14 +00:00
Hadi Nategh
07a036b5f4 Fix IDE warnings in mail_ui 2014-07-16 16:34:15 +00:00
Hadi Nategh
2b07a387c6 Remove Mail_ui class out commented statements, in order to make the code easier to read 2014-07-16 13:42:36 +00:00
Hadi Nategh
ae062b12c5 Mail_ui::__construct() free of out commented statements 2014-07-16 12:15:11 +00:00
Hadi Nategh
1d0db1e05b Fix mail import message dialog 2014-07-16 11:37:02 +00:00
Nathan Gray
2b1d6e2244 Add drag action for display popup attachments 2014-07-14 20:50:08 +00:00
Klaus Leithoff
a0d6257d1e handle message/rfc822 attachments as display when opened from drafted message; properly restore message/rfc822 attachments stored with .eml files 2014-07-11 13:49:27 +00:00
Klaus Leithoff
096f753a59 different approach on calling bulk-download (all attachments in one archive) 2014-07-08 12:01:29 +00:00
Ralf Becker
579e0da787 new method to check if mail account is an imap account: Checks if an imap host, username and NOT deliveryMode="forwardOnly" is set 2014-07-08 11:09:31 +00:00
Klaus Leithoff
5b1ed6a756 fix for failed bulk-download of attachments; bo functions for retrieving mail attachments (and header info for subject) NEED the folder information 2014-07-08 10:20:19 +00:00
Klaus Leithoff
07d1ba39a6 handle problems with select-all on flag, move and delete 2014-07-08 08:50:43 +00:00
Nathan Gray
99e28b96b3 Add save all attachments as zip to mail display popup 2014-07-03 17:17:54 +00:00
Nathan Gray
ed6d15098a Add save all attachments as zip to mail preview 2014-07-03 16:57:14 +00:00
Hadi Nategh
d67745ce4e Fix mail profile change failure pops up XML error. Instead, make sure if there is an exception then pops up the emailadminWizard or shows up a message via tree node 2014-06-30 15:48:49 +00:00
Hadi Nategh
0217c2ebaa Set an empty sidebox if there is json response, and for regular request like idots template render the framework to get header and navbar shown 2014-06-23 11:38:42 +00:00
Klaus Leithoff
0ab34ccfe5 basic implementation on Strg+A for copy/move mails; not working as of now, as this.mail_checkAllSelected(_action,true) seems not to produce the desiredv result on dragndrop 2014-06-20 13:37:20 +00:00
Klaus Leithoff
d071e645cd implement Strg+A on Message deletion per folder 2014-06-20 12:05:03 +00:00
Hadi Nategh
2babf41119 Use popup method to call emailadminWizard when there is no JSON request 2014-06-20 09:28:45 +00:00
Hadi Nategh
c0d85eb33e Make sure to not popup the emailadminWizard if getfoldertree is called via tree interaction 2014-06-18 11:23:54 +00:00
Hadi Nategh
94950729ab Popup the emailadminWizard if there is authentication failure 2014-06-18 09:56:11 +00:00
Klaus Leithoff
48d3f93fa3 always test if there are attachments listed with the header information, as we gather that info anyhow in getHeaders 2014-06-03 07:51:39 +00:00
Klaus Leithoff
324a599ae2 remove egw_refresh and egw_message calls and replace them with (this.)egw.message and (this.)egw.refresh 2014-05-27 13:31:37 +00:00
Klaus Leithoff
30ae5f1b81 * Mail: detect and handle actions on ALL-messages for setting and removing flags and lables for the mailbox we operate on 2014-05-27 12:05:23 +00:00
Hadi Nategh
78a461b120 * Mail/Sieve: Show mail sieve rules list in mail index with sidebox mailTree available 2014-05-22 14:46:50 +00:00
Hadi Nategh
6ed0d09212 Fix more warnings (e.g., remove unsed varaibles, and fix miss documentation) 2014-05-22 07:47:49 +00:00
Ralf Becker
7a305bdf95 enable/disable Sieve and ACL actions on tree account-specific, also added a couple more icons to tree icons 2014-05-22 07:36:02 +00:00
Ralf Becker
f98642df20 fixed not existing Sieve script gives now an exception 2014-05-21 11:24:34 +00:00
Klaus Leithoff
86eb361233 handle folder-tree refresh on subscribe/unsubscribe ; with focus on shared folders 2014-05-20 14:28:23 +00:00
Klaus Leithoff
c34ddd14c4 fix problem on folder Substribtion tree - all folders are marked as subscribed, wether they are ore not 2014-05-20 13:39:04 +00:00
Klaus Leithoff
30d2445714 silence debug messages 2014-05-20 11:47:18 +00:00
Klaus Leithoff
49e3fa5dbd * Mail: store last move or copy targets for action menu options to be used to move mails to previously used targets on rightclick 2014-05-20 10:02:21 +00:00
Hadi Nategh
1c31dad881 Switch sieve from oldimap class to new imap 2014-05-13 17:09:05 +00:00
Ralf Becker
3d5a2ffc3b handle connection errors by opening wizard and show a fake folder with error message (to not get error from tree and unlock tree again) 2014-05-12 07:35:23 +00:00
Klaus Leithoff
d808e0a6c5 * Mail: harden mailapp to better cope with broken accounts 2014-05-09 12:43:57 +00:00
Klaus Leithoff
ee46a063a0 * Mail: fix a namespace issue (for additional defineable namespaces under dovecot) reported by E.Popp 2014-05-08 08:50:48 +00:00
Klaus Leithoff
b69e147247 * Mail: skip accounts with no imap server set for notification and foldertree 2014-04-25 09:42:18 +00:00
Klaus Leithoff
d471d547ee refresh foldertree on subscribe/unsubscribe 2014-04-24 09:23:06 +00:00
Klaus Leithoff
b61c69f3dc * Email: remove option to reset cached objects; reset Cached Objects on account-edit 2014-04-23 09:18:50 +00:00
Klaus Leithoff
40136cff9b * eMail: some Servers have very limited SEARCH capability; (no OR allowed/supported) try to detect and act accordingly 2014-04-11 13:52:58 +00:00
Klaus Leithoff
d3ef9ea496 attempt to cleanup regarding old emailadmin/felamimail 2014-04-08 15:19:06 +00:00
Klaus Leithoff
1411cc73fb attempt to cleanup regarding old emailadmin/felamimail 2014-04-08 14:55:43 +00:00
Klaus Leithoff
acd782c287 basic check for sieve capability allows for empty acc_sieve_host -> fallback to acc_imap_host 2014-04-07 12:52:50 +00:00
Klaus Leithoff
a4efec4997 handle vacation notice on mail-index page; check and refresh on changeFolder; refresh on editVacation 2014-04-03 12:20:23 +00:00
Klaus Leithoff
e72f015d81 fix the serverside bug for bug handeled on r46405 2014-03-27 09:25:11 +00:00
Klaus Leithoff
e36a7b17e3 support Disposition-Notification-To, Return-Receipt-To and X-Confirm-Reading-To on preview 2014-03-25 16:20:28 +00:00
Klaus Leithoff
70d2a9f479 fix activesync attachment issue reported by randy; fix issue regarding the mail action on calendar entries; some cleanup 2014-03-21 10:37:09 +00:00
Klaus Leithoff
7c8635a2a8 suppress refresh of whole messagelist when moving mails from one foölder to another; let et2 / nm / egw_refresh handle it 2014-03-10 14:36:03 +00:00
Klaus Leithoff
1a07aefd4a control target options regarding the move of messages via dragndrop (prefaskformove) 2014-03-10 13:01:02 +00:00
Klaus Leithoff
5a49a57c5f suppress #divAppboxHeader #divGenTime_mail; disable actions displayastext and displayashtml on preview action menu (not supported yet) 2014-03-07 14:26:16 +00:00
Ralf Becker
2160ccc029 moved (lost) base font size and other css styles to new preview.css 2014-03-04 10:48:35 +00:00
Ralf Becker
39860b57f7 fixed mail preview was not sending CSP headers and clicking on mailto-urls redirected to home 2014-03-03 14:56:12 +00:00
Klaus Leithoff
d044c02ae8 fix use of mail->add registry use for mailto links in mailbody 2014-03-03 14:50:43 +00:00
Nathan Gray
b1040d48ae Remove accidentally set readonlys 2014-02-27 21:34:30 +00:00
Ralf Becker
5fab71efab sending toolbar actions from index and get_rows (were on every rows/mail before), ToDo: only send them in get_rows if labels change 2014-02-27 17:47:06 +00:00
Klaus Leithoff
b8801d64e5 more debug for times; getFolderObjects and getFolderTree 2014-02-27 16:47:23 +00:00
Klaus Leithoff
2a55cfd281 more debug for times; try to minimize old openConnection calls 2014-02-27 15:32:14 +00:00
Klaus Leithoff
1b7c3130b1 introduce static debugTimes and logRunTimes to track timeconsumption of calls 2014-02-27 12:16:23 +00:00
Klaus Leithoff
d3b244e069 use html::content_header for gathering download headers on getAttachment and saveMessage 2014-02-25 15:59:22 +00:00
Ralf Becker
8989ac5d01 fixed empty line in popup with drop actions and added icon for cancel 2014-02-25 15:04:09 +00:00
Hadi Nategh
fdd747fe35 Unset drag_mail actions from display and preview toolbar, and set view_rang for display toolbar to 6 actions 2014-02-25 13:50:58 +00:00
Ralf Becker
bcc1393c49 new view/source icon 2014-02-21 08:56:12 +00:00
Hadi Nategh
017737e7eb Add more actions in mail display as default toolbar actions 2014-02-20 18:08:48 +00:00
Ralf Becker
5d098b9028 translating source with "Quelltext" in German and using view icon for it 2014-02-20 08:21:41 +00:00