Hadi Nategh
1d3769939b
Apply Ctrl+Alt keys in order to be able to distinguish between content selection and dnd for draggable actions
2014-10-23 16:23:25 +00:00
Hadi Nategh
fed76559fa
Fix scrolling of content in iframes for touch devices (applied for iOS)
2014-10-23 13:44:40 +00:00
Hadi Nategh
f58cb571ef
Fix indentation
2014-10-22 15:35:58 +00:00
Hadi Nategh
89a9c860e4
Set hold trigger timer to 600 milliseconds in order to popup the context menu faster for touch devices
2014-10-22 15:21:07 +00:00
Hadi Nategh
fb0059b796
Use jquery-tap-and-hold plugin for taphold event on touch devices
2014-10-22 15:12:48 +00:00
Hadi Nategh
510469e60b
Implement to set proper lable for dragging item for the drag helper
2014-10-21 14:31:18 +00:00
Ralf Becker
af048109ee
adding singular and plural name of app entries to link registry under "entry"/"entries" plus translations for apps which need them different from app-name
2014-10-21 13:51:37 +00:00
Hadi Nategh
549431fb73
Revert commit r49090, because it breaks special ctrl key and click handling in nm. Need more investigation to solve it
2014-10-21 13:35:19 +00:00
Hadi Nategh
c1c4b7c682
Replace the drag out trigger key from Ctrl (or Command key in Mac) to Shift key.
...
- Make Ctrl key as a standard dnd action disabling, and being able to select content by holding Ctrl key.
2014-10-21 11:48:25 +00:00
Hadi Nategh
23c0285825
Make sure the this object is avaliable before addressing it.
...
-Fix error in calender views which was happening after dnd
2014-10-21 08:58:33 +00:00
Hadi Nategh
10eb33cbdd
Get drag out action working again
2014-10-20 15:03:31 +00:00
Hadi Nategh
96d9f14d12
More progress of commit r49059
2014-10-20 11:41:59 +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
Ralf Becker
2778b48273
fix popup detection to cope with window.opener being a reference to itself --> should NOT be detected as popup
2014-10-17 08:22:28 +00:00
Hadi Nategh
55b97699b6
Notify user of how to select content of a draggable item
2014-10-16 14:41:30 +00:00
Nathan Gray
5082d8a634
- Better popup resize calculations
...
- Test new popup size for addressbook
2014-10-15 15:52:07 +00:00
Ralf Becker
424b4c451c
fix redirects in a popup and new egw_exception_redirect to be used in hooks/callbacks like for addressbook.edit to redirect to a different location
2014-10-15 14:55:08 +00:00
Ralf Becker
29cae75178
fix IDE warnings / documentation and move "use strict" from global scope to object itself
2014-10-09 09:34:24 +00:00
Ralf Becker
1c9a14159e
* Mail: allow to enter name+mail eg. "Ralf Becker <rb@stylite.de>" in compose, automatic fix unquoted commas in entered mail addresses
2014-10-08 09:01:51 +00:00
Nathan Gray
7bcf736f09
Increase popup padding by 20x30 pixels
2014-10-07 23:26:25 +00:00
Hadi Nategh
3404c704a6
Make sure state object exists
...
-Fix error "Cannot read property 'sort' of undefined" for favorites without state
2014-10-02 09:06:15 +00:00
Nathan Gray
f8540288d8
Check that array entry is there before looking into it.
...
Prevents error when accessing deleted user.
2014-10-01 15:53:31 +00:00
Ralf Becker
d736d6cb4a
fix typo
2014-10-01 10:37:30 +00:00
Ralf Becker
6be491d6eb
stop egw.debug("error",...) to show error to user, if LOCAL_LOG_LEVEL=0, which we currently set in source
2014-10-01 10:34:50 +00:00
Ralf Becker
81f68e09d6
switching off Javascript error-handler and -display in GUI
2014-09-30 20:30:46 +00:00
Nathan Gray
70689708a3
Restore favorite's sort order along with filters
2014-09-26 19:15:50 +00:00
Ralf Becker
3093cb6b85
fixed not working refresh of user category list called via top-menu after adding/editing a category
2014-09-25 16:03:28 +00:00
Ralf Becker
a4d18fdce2
trigger blur on taglist in getValue() to not loose just typed content (previous fix stoped selection of suggestions by mouse)
2014-09-10 10:02:07 +00:00
Ralf Becker
c0877bdaef
fix typing of an email-address in compose with direct click on send button (no tab out of taglist) looses just typed email
2014-09-09 11:42:16 +00:00
Ralf Becker
4d7f00d0fd
nextmatch responses got cached for in meantime changed folder
2014-09-08 15:45:37 +00:00
Ralf Becker
414eeec511
fix javascript error caused by caching using a string context, searching now for a nextmatch one
2014-09-08 14:59:19 +00:00
Ralf Becker
951768885a
when refreshing some uids in a nextmatch, we need to send nextmatch filters too, as server-side will merge old version of filters from initial request data otherwise
...
this can cause rows not to be returned because of different filters or search, or they are returned thought they should not
2014-09-05 09:32:44 +00:00
Ralf Becker
6ec9df222f
fixed replay to first mail in newly refreshed or changed folder removes mail when sending
...
caused by eT exec_id got lost in call to egw.dataRefreshUID
2014-09-03 14:33:13 +00:00
Ralf Becker
6e831aaad9
docu update and fix IDE warnings
2014-09-03 08:11:59 +00:00
Hadi Nategh
220d314cf9
* Calendar: Fix sidebar calendar in pixelegg to not flicking while the mouse is over on dates, and gets expanded with sidebar column resize
2014-08-27 09:46:57 +00:00
Ralf Becker
28d195417c
fix error happening in browsers not supporting console object
2014-08-21 08:12:31 +00:00
Nathan Gray
a09fae5f43
Data improvements:
...
- pass UID as additional parameter to data callbacks
- cache actual data separately from cached fetch response to avoid duplication
- use callbacks to keep localStorage data consistent with data in memory
- use callback to update cached fetch response if a record is removed (set to null)
2014-08-06 21:00:31 +00:00
Nathan Gray
f361373455
- Use timestamp to give cached dataFetch data a lifetime, currently 29 seconds.
...
- Add another callback for cache registration, called whenever the cache is used.
2014-08-04 17:04:11 +00:00
Hadi Nategh
671fec00d4
Delete accidentally added files by commit 47981
2014-08-04 14:12:02 +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
Nathan Gray
ffb986f560
Handle if ID is not a string instead of erroring.
2014-07-28 23:11:22 +00:00
Nathan Gray
2fe7b34081
Smarter cache expiry based on age
2014-07-28 22:07:47 +00:00
Nathan Gray
df76846b37
Allow for long-term client side caching of dataFetch responses.
2014-07-28 21:17:06 +00:00
Hadi Nategh
5e8de7f972
Get the socialMedia icons out of table and append it to form if it is pixelegg template
2014-07-25 07:53:30 +00:00
Hadi Nategh
1912a14fe7
Add login.js to phpgwapi in order to make it available for all templates. Implement socialMedia for jdots and idots templates too
2014-07-24 17:13:46 +00:00
Ralf Becker
f337b33502
* eTemplate2: fixed popups eg. tracker open empty, not rendering popup content
2014-07-21 13:38:23 +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
Hadi Nategh
a2bac6e07a
Make sure _with value is not null when trying to replace it into url, it causes broken url while using _replace argument from refresh_opener
2014-07-18 09:16:41 +00:00
Klaus Leithoff
430cba8991
* API/CKEditor: update to version 4.4.3; add additional skins
2014-07-18 07:56:43 +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
Nathan Gray
9f9f5184fc
If selected egwActionObject(s) contain data, use that over global data store.
2014-07-14 20:29:42 +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
017ffe5e15
fixed javascript error "undefined attribute length"
2014-07-08 14:26:15 +00:00
Nathan Gray
a3a1d500ee
set_preference now accepts an additional callback parameter, passed on to jsonq
2014-07-08 03:34:05 +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
Ralf Becker
d399e01ce8
new client-side API methods egw.dataSearchUIDs() and egw.dataRefreshUIDs() search for a given uid or regular expression and refreshing matching nextmatch rows, if somethings found
2014-07-04 08:55:37 +00:00
Ralf Becker
23cbc01e2c
activating observer for admin instead of app_refresh and using it to invalidate client-side account-cache
2014-06-26 08:23:02 +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
Ralf Becker
ff00c695ca
new API method egw_framework::popup($link, $target="_blank", $popup="640x480") to open a popup independent of running a regular or a JSON request
2014-06-18 13:57:15 +00:00
Nathan Gray
715bbf9abe
If a refresh of a particular UID is requested and server doesn't give it then remove it.
...
Fixes refresh where the row no longer match filters, but is still there.
2014-06-17 19:23:14 +00:00
Nathan Gray
2bc3ad43c0
Avoid undefined error when links is not provided
2014-06-10 15:27:11 +00:00
Ralf Becker
6d6e9d8a43
also replace p tags
2014-06-05 09:54:21 +00:00
Ralf Becker
90214935be
reapplied r42638: Add a global ajax callback so the et2 widget can stay in sync with the dhtmlxtree
2014-06-03 08:56:14 +00:00
Ralf Becker
d9c9e06aad
reapplied r41681: fixed event handling in tree, added tree specific onSelect and onCheck events, implemented !multiple mode and fixed dhtmlxtree to not trigger onSelect if selection is change via set_value (according to their documentation)
2014-06-03 08:54:46 +00:00
Ralf Becker
85c5468013
fixed old tree stuff to use new dhtmlx locations, allways use dhtmlxtree/codebase/dhtmlxcommon.js
2014-06-03 08:17:43 +00:00
Nathan Gray
3b8bee4d18
Update dhtmlxTree & dhtmlMenu to latest version
2014-06-02 23:32:15 +00:00
Nathan Gray
4b1fc627c4
Update dhtmlxTree & dhtmlMenu to latest version
2014-06-02 23:31:30 +00:00
Nathan Gray
07ec496a8e
Decode stored favorite before parsing it, fixes missing umlauts
2014-05-27 18:52:44 +00:00
Nathan Gray
eaccfdfe1d
Enhance error message to include request info
2014-05-27 14:53:34 +00:00
Ralf Becker
ddc17e8e0d
allow null as well as undefined for message-type-detection
2014-05-26 15:39:21 +00:00
Ralf Becker
28b45639be
to give observer method of other apps more information about what to refresh, server-side adds now links to refresh-opener and therefore observer calls
2014-05-26 13:29:35 +00:00
Ralf Becker
b1603f4fd3
support <br/> and a single <a href="...">Text</a> (no further attributes!) in egw.message()
2014-05-26 13:05:40 +00:00
Ralf Becker
ddc1b2d673
docu update about how to stop regular refresh
2014-05-23 09:20:42 +00:00
Ralf Becker
7edd12d251
run observers in main window (eg. not iframe, which might be opener!)
2014-05-23 09:19:46 +00:00
Ralf Becker
24ee68bdf2
fixed infinit loop for apps running in iframe by refactoring frameworked templates work with client-side api:
...
- moved shared etemplate2 part into static etemplate2.app_refresh() method
- egw_message.refresh() calls framework.refresh() which can return a DOMwindow for egw.refresh() to work on, instead of calling egw.refresh recursive
2014-05-23 08:21:11 +00:00
Ralf Becker
893091e286
- new app.js observer method which receives update notifications from all apps
...
- app.infolog.observer triggering refresh of InfoLog list, when a timesheet get stored
- moved code of already deprecated egw_refresh() to egw.refresh() and changed etemplate to use that
- framework from jdots/pixelegg template no longer overwrites window.egw_refresh, but egw.refresh calls framework.refresh for regular refreshs if framework is present
2014-05-22 15:29:14 +00:00
Hadi Nategh
b3ee7bc605
Make sure if the refresh is done, then give up not to reload the whole page
2014-05-22 11:27:29 +00:00
Nathan Gray
33f264346a
Fix error deleting a favorite
2014-05-13 21:39:23 +00:00
Ralf Becker
19fc7acb7f
top.egw is a function not an object
2014-05-13 08:48:27 +00:00
Ralf Becker
ac220a6e82
using egw.is_popup() which deals with situation of egw main-window having an opener (eg. bookmark)
2014-05-13 06:44:50 +00:00
Nathan Gray
9a8182480f
Stop popups from re-initializing sidebox. Fixes favorites causing whole application to reload after saving a popup.
2014-05-12 20:36:18 +00:00
Ralf Becker
194606b196
public method to translate between PHP and jQuery date(Time)Picker date/time-format
2014-05-08 15:57:07 +00:00
Ralf Becker
b111f5005b
fixed select-accounts show only part of users, caused by previously trying to extend now used array
2014-05-07 15:51:45 +00:00
Nathan Gray
61198e3684
Update gantt code
2014-04-30 20:24:50 +00:00
Nathan Gray
140a0746d1
Make sure top actually has app before calling it.
...
Fixes error in calendar where non-list views are still in an iframe, but top window has no app.js
2014-04-30 16:25:05 +00:00
Nathan Gray
4d016169e7
Precautions for iframes + sidebox
...
- Unbind any existing events on existing sidebox, if _init_sidebox() is called again
- Only call _init_sidebox() on top-level window's app.js, fixes some iframe issues with admin
2014-04-29 16:51:57 +00:00
Nathan Gray
5c19f99d9d
Remove no longer needed AJAX call for groups, API now provides them directly to the widget
2014-04-29 16:15:23 +00:00
Nathan Gray
178fa34031
Implement action system state for trees
2014-04-28 23:11:58 +00:00
Nathan Gray
21e5eb79dd
Fix bug where if no additional apps were requested, no translation was done.
...
Was visible in ACL edit dialog.
2014-04-28 16:17:41 +00:00
Hadi Nategh
c912849bd5
Apply favorites sortable feature to sidebox fav. menu
2014-04-25 07:37:11 +00:00
Nathan Gray
62686e4b2a
Enhancement to r45442 so search options provided as a list are still filtered, but server response is accepted unfiltered.
...
Fixes search options provided as a static list were not being filtered.
2014-04-23 21:42:22 +00:00
Nathan Gray
48fa6611f3
Use a single client-side cache for account selection so we don't have to send it for every widget
2014-04-23 19:00:59 +00:00
Nathan Gray
c4f56f2c3b
New dhtmlxGantt library, and etemplate2 widget to use it (work in progress)
2014-04-16 19:47:29 +00:00
Ralf Becker
554789e9ff
2 new message types "help" and "info" and displaying now all message types but "success" until next message or user explicitly closes them
2014-04-02 19:02:49 +00:00
Nathan Gray
d3c0314b4d
Switch AJAX upload library to Resumable for chunked uploads.
2014-04-01 20:48:40 +00:00
Ralf Becker
6fdf8c98d1
open preferences and ACL in a popup (ACL still needs a little more work: use et2_dialog to add/edit instead of an other popup)
2014-04-01 15:49:08 +00:00
Ralf Becker
d28583a3a4
fix Array has no method match, if egw_framework::message() is called in GET request
2014-04-01 14:16:11 +00:00
Ralf Becker
13ad291696
need to init apps too
2014-03-28 13:15:11 +00:00
Ralf Becker
115aabf21a
fixed error because using (by loading order sometimes) uninitialised class-variable instead of documented and initialies private var
2014-03-28 08:06:30 +00:00
Nathan Gray
e7fd500006
Store the jQuery jqXHR request object in the json_request, and return it from sendRequest() so caller can access it, if needed.
2014-03-26 17:53:09 +00:00
Ralf Becker
a4b27d286d
* FireFox/all apps: fixed in recent FF version popups opened always in a single popup (overwritting previous opened one)
2014-03-26 10:32:17 +00:00
Ralf Becker
7d7436e54b
fixed javascript errors happening if config was not loaded
2014-03-25 12:23:06 +00:00
Ralf Becker
fcc1737036
fixed error when filename included non-ascii chars (eg. German umlauts) and added a header with information about author and Github url
2014-03-21 17:11:18 +00:00
Ralf Becker
ac18b6cc8d
changed et2_core_inheritance.js to implement ClassWithAttributes extending Class from egw_inheritance and changed et2 objects to use ClassWithAttributes when required (also fixed lots of IDE warnings / added docu)
2014-03-20 09:40:37 +00:00
Nathan Gray
aa3c0ca7c0
Pass along last modification time to callback
2014-03-18 22:28:50 +00:00
Nathan Gray
53f0873583
Avoid initial request to server on creation
2014-03-18 14:51:33 +00:00
Ralf Becker
f47e38f320
wrong window was used when compiling list of already included scripts or css files, fixes missing css styles for context menu in popups (list of links)
2014-03-13 15:28:42 +00:00
Ralf Becker
2a34b88111
fixed not working referesh of ACL list
2014-03-12 13:14:23 +00:00
Nathan Gray
26eaf7e1fe
Add a isDefault flag to allow changing default execution function
2014-03-11 16:25:18 +00:00
Ralf Becker
086195c0aa
stop event propagation after calling setState, fixes "double sidebox" in CRM view, if called via a favorite (caused 2 identical requests to server, which both added their sidebox)
2014-03-11 08:16:52 +00:00
Hadi Nategh
96a6a7ee1a
Adjust width for resized popup windows, since we are trying to use fix width for edit popups
2014-03-10 16:04:01 +00:00
Ralf Becker
79e1b5c9b8
fixed CSP error for multiple eTemplate2s (CRM view), by allways sending etemplate data via et2_container tag (instead etemplate script tag) and create an et2 object for all of them in egw.js
2014-03-10 11:58:49 +00:00
Ralf Becker
ea04a556ca
added a couple more default icons similar to et2_button, and fixed actions with just a caption string where not working with toolbar
2014-03-06 18:33:27 +00:00
Stefan Reinhardt
4da2182c14
delete: font-family + font-size
2014-03-05 17:03:46 +00:00
Ralf Becker
a7251c13ed
using new css class "drop-hover" for hovering over egw_action dropables and no longer any activeClass showing possible drop targets
2014-03-05 12:31:32 +00:00
Ralf Becker
97a5a41867
fix typo
2014-03-04 12:20:26 +00:00
Ralf Becker
04442bb0cf
move actions stuff to api bundle, as loading just it fails with etemplate bundle split in two parts (fixes error reported on devel list)
2014-03-04 09:10:58 +00:00
Nathan Gray
6b86eb9c0f
For the purposes of keyhandling, consider textareas & buttons inputs too
2014-03-03 19:00:25 +00:00
Nathan Gray
e9b5dfde4d
Bind key handler to save favorite on Enter
2014-03-03 18:51:58 +00:00
Ralf Becker
11d77f3dab
fixed a couple of problems with automatic switch to idots template from mobile browsers: csp-error, wrong icons
2014-03-03 17:35:48 +00:00
Nathan Gray
3b15036ce8
Add a check for select_all action, and use it if there.
...
Fixes Ctrl+A only selected visible nextmatch rows.
2014-02-27 23:06:27 +00:00
Ralf Becker
1ae9925cd5
removed .on("mouse(enter|leave)" (wrapping trash icon), as it stalls delete of favorites in IE11
2014-02-26 15:44:00 +00:00
Nathan Gray
56ac3577f0
Revert r45738, it broke mouse selection.
...
Now users have to actually select the address before clicking send
2014-02-25 22:50:30 +00:00
Ralf Becker
71d685ef9d
updating jQuery to 1.11.0 and jQuery-UI to 1.10.4, seems to fix some IE 11 problems
2014-02-25 17:18:02 +00:00
Ralf Becker
b4a0a18de6
fixing wired IE11 errors ...
2014-02-25 17:16:42 +00:00
Ralf Becker
81818d2bbd
fixing wired IE errors: need to clone data in set_preferences, as it gets cleaned up in IE
2014-02-25 17:05:16 +00:00
Nathan Gray
4591fa6e21
Fix TypeError: Cannot call method 'css' of undefined
...
Fixes blank infolog popup, timesheet index
2014-02-25 16:31:06 +00:00
Ralf Becker
e5aa97e2a0
fix IDE warnings
2014-02-25 16:03:12 +00:00
Ralf Becker
8181772025
do NOT initialise imediatly, as DOM is not yet ready (at least in IE11)
2014-02-25 16:02:46 +00:00
Ralf Becker
58b6cb3bc6
fixed tons of IDE warnings
2014-02-25 15:03:13 +00:00
Ralf Becker
589a6e2e96
fixed not working hideOnDisabled when building popup menu for multiple drop actions, also fixed tons of IDE warnings
2014-02-25 15:02:49 +00:00
Ralf Becker
308dfdadc7
allow to already use egw.refresh() instead of egw_refresh() and added todo to move code
2014-02-25 09:46:05 +00:00
Ralf Becker
2f3add4ce9
hook to allow apps to add addional domains to CSP frame-src, eg. used by sitemgr to allow access to its sites, also fixed not displayed sidebox menu of old apps
2014-02-21 17:06:11 +00:00
Ralf Becker
796663c2a6
fixed modified translations were not automatic loaded after new login
2014-02-21 11:10:11 +00:00
Ralf Becker
530ebec63f
fixed not translated time-labels in datetime picker
2014-02-19 16:40:56 +00:00
Ralf Becker
b692346cce
several IE11 fixes avoiding or working around javascript errors
2014-02-19 15:10:39 +00:00
Ralf Becker
bd941f3601
allow to send a redirect from server-side via client-side egw.link_handler(url, app) allowing to specify which tab to use and a top-level (ajax=true) url
2014-02-19 15:08:38 +00:00
Ralf Becker
668bec020b
fix display and logging of javascript errors for IE
2014-02-18 17:05:26 +00:00
Ralf Becker
186bdbcb55
running categories and acl in iframe again. If they run top-level their admin/js/app.js objects conflict with other top-level admin/js/app.js object and only one working categories or acl tab can be opened
2014-02-17 15:11:26 +00:00
Ralf Becker
d01d5119ca
calling app[appname].et2_ready(et2,name) with template name as second parameter
2014-02-17 14:58:20 +00:00
Ralf Becker
0fa215c9e8
fixed sometimes not deletable favorites
2014-02-14 12:46:49 +00:00
Nathan Gray
bad65780bc
Register a JSON handler to show error responses as error message instead of losing them.
2014-02-13 18:47:19 +00:00
Ralf Becker
af1e70ab32
fixed javascript error, if favorite has no href AND make sure all new favorites are created with an href, like they are created server-side
2014-02-13 16:50:49 +00:00
Ralf Becker
3a5ece79a7
fixed creating or deleting favorites in calendar does not work: was caused by sidebox not initialised as not yet loaded, now calling _init_sidebox from framework, also need to add a click handler for favorites as initialising sidebox removes one installed from template
2014-02-13 15:37:49 +00:00
Nathan Gray
96e44c018f
Fix bug where loss of focus from clicking on a button did not trigger blur in time.
...
Fixes typing an email address & clicking send does not enter address into to field
2014-02-12 23:32:56 +00:00
Nathan Gray
614736e4e3
Handle lost bar position by reverting to 50%, same as too close to edge
2014-02-12 22:51:55 +00:00
Ralf Becker
f0d7751496
removed caret from group favorites, fixed prefered favorite was not show correct initialy nor updated
2014-02-12 21:51:25 +00:00
Ralf Becker
4a7c0204a0
fixed just added favorite can NOT be used as default for dropdown button (gave alert "No default set")
2014-02-12 20:55:10 +00:00
Ralf Becker
75316761b2
added FF name
2014-02-12 18:40:01 +00:00
Nathan Gray
1ca01da9b0
Fix missing group ID when deleting group favorites, fixes unable to delete group favorites
2014-02-12 17:33:22 +00:00