Klaus Leithoff
7b7c9f47a6
fix broken kama skin, add icons_hidpi.png
2013-10-21 10:59:38 +00:00
Klaus Leithoff
e24697679d
fix broken kama skin
2013-10-21 10:58:31 +00:00
Nathan Gray
f6526a30e8
Fix intermittent issue with missing window breaking ajax
2013-10-18 21:01:53 +00:00
Ralf Becker
998d568ef4
for egw.json calls in a popup we need to use jQuery object of that window, as otherwise eg. apply from server with app.$app.method to run in main window instead of popup
2013-10-18 16:14:36 +00:00
Klaus Leithoff
1d3998c99e
* CKeditor: update to version 4.2.2
2013-10-17 15:13:47 +00:00
Nathan Gray
b77ce6a8dc
- MagicSuggest update
...
- Fix setting taglist value via js
2013-10-11 14:38:04 +00:00
Nathan Gray
129eb91b3d
Null is also not OK for icon
2013-10-10 16:15:46 +00:00
Klaus Leithoff
43d73abbcd
test if the required method is available on framework
2013-10-10 15:38:18 +00:00
Ralf Becker
24e3fb2e63
fix "Got invalid title request, by NOT sending empty requests" warnings
2013-10-10 10:49:41 +00:00
Nathan Gray
e0954288dd
Switch to a heartbeat style of tracking open [named] popups. Seems much more consistent.
2013-10-10 09:37:21 +00:00
Nathan Gray
33a88ea089
Also accept meta (Command) key to turn on dragging files out of window
2013-10-09 09:12:02 +00:00
Ralf Becker
6cfd7b22b7
using jQueryUI resizable to resize sidebox, getting it to work under CSP that way
2013-10-08 12:06:07 +00:00
Ralf Becker
bafcc80e35
fixed translations not loaded on very first request, as postponing ready for waiting on translations did not work, now using a direct callback instead
2013-10-08 08:55:15 +00:00
Ralf Becker
0bb8093426
fixed translations on client-side: server sends now currentapp and langRequire to client, which uses that to translate phrases, langRequire is only stored in egw object for matching app-name and window!
2013-10-07 17:00:03 +00:00
Ralf Becker
a6311fa1a3
creating and using an app-specific egw object
2013-10-07 16:53:13 +00:00
Nathan Gray
746e6ea193
Also accept just the window name to windowClosed(), as sometimes window.name is not available anymore.
2013-10-07 11:20:47 +00:00
Nathan Gray
57c412bd47
Slightly more robust popup handling.
...
It's still not possible to completely track them, but it's a little better.
2013-10-07 10:09:08 +00:00
Nathan Gray
3ca2448f94
Make storage api global
2013-10-07 10:08:24 +00:00
Ralf Becker
43e1bfcc12
switching on Content-Security-Policy: script-src 'self' 'unsafe-eval' for all templates, old non-et2 apps can call egw_framework::csp_script_src_attrs('unsafe-inline') to enable inline scripts in their scope, et2 does it for CK editor which does not support CSP currently and old etemplate does it for all apps using it
2013-10-05 13:33:28 +00:00
Nathan Gray
8a7ffaa182
Restore accidentally removed return of popup window
2013-10-05 09:38:22 +00:00
Nathan Gray
893648e189
Add the ability to track named popups opened using egw.open() or egw.open_link(). Unnamed popups or those opened in other ways are not tracked. You can get the list using egw.getOpenWindows(app, regex_filter), which returns a list of names.
...
Also, a wrapper around session storage.
2013-10-05 09:28:12 +00:00
Ralf Becker
59f264ada4
do NOT require enabled=true for (enable|disable)Class or enableId attribute to work
2013-10-04 11:18:50 +00:00
Nathan Gray
282fb76cb6
Improve error message
2013-10-04 09:40:35 +00:00
Ralf Becker
2f39c7b4dd
fixed not working preferences under idots template
2013-10-03 15:54:19 +00:00
Ralf Becker
dad39e1d8a
moved all confirmation to api egw_actions and changed select_all to depend on all visible rows selected (Ctrl-A)
2013-10-03 15:30:27 +00:00
Ralf Becker
66db293a67
missing commit for new preferences
2013-10-03 15:17:14 +00:00
Ralf Becker
6f162f144e
add context sensitive link to ACL/grant access to top-menu, same is to be happen for cats and preferences itself and preferences in sidebox will be removed
2013-10-02 16:29:08 +00:00
Nathan Gray
756b3d3380
Fix app-level redirect affects whole page
2013-09-30 12:34:45 +00:00
Nathan Gray
07b311d495
Enhance error message to actually include the original error message
2013-09-17 20:17:20 +00:00
Nathan Gray
6fd5e50d60
Use a two step process to force an absolute URL, in case server settings have full URL
2013-09-17 15:34:39 +00:00
Nathan Gray
68b1178657
Undefined needs quotes.
2013-09-16 14:35:55 +00:00
Nathan Gray
b4007621f7
When applying (call a function) call it on the request window, not current - they may be different
2013-09-11 15:52:49 +00:00
Nathan Gray
958167b0f7
Add an optional async parameter to sendRequest() to make simple async calls easier
2013-09-10 20:22:47 +00:00
Nathan Gray
8ca7b57715
Start giving some deprecated warnings so we can start the process of removing this file
2013-09-10 19:39:20 +00:00
Ralf Becker
1590d02816
new egw_framework::message($msg, $msg_type="success") method and fixing nextmatch filter-change to return app-header
2013-09-05 11:53:25 +00:00
Nathan Gray
eef2235f2e
Merge egw_jsons - change jsonq to use egw.json()
2013-09-04 22:01:33 +00:00
Nathan Gray
467734258c
Merge egw_jsons - change preferences to use egw.json()
2013-09-04 21:51:08 +00:00
Nathan Gray
72e5c43a96
Add child action visbile/enabled checking - previously children were always enabled
2013-09-04 19:09:48 +00:00
Ralf Becker
1f8e0e9e41
global method egw_message(_msg, _type) to display success-, warning- or error-messages in app-header
2013-09-04 19:02:34 +00:00
Ralf Becker
e2cce43bad
fixed not working _self target
2013-09-02 13:25:00 +00:00
Nathan Gray
eb989ed98b
Hold Ctrl key to drag a file from filemanager to system folder / desktop
...
Restricted to Chrome only, one file at a time, folders don't work well.
This uses Chrome-only DownloadURL, so other browser support is unlikely.
2013-08-28 22:31:14 +00:00
Ralf Becker
ccab8e0ac1
fix alert("1"), caused by data-window-close being a string
2013-08-27 16:49:57 +00:00
Ralf Becker
aa8a848871
optional parameter for egw_framework::window_close() to specify an alert message, which get shown/alerted, before closing the window
2013-08-26 10:24:11 +00:00
Ralf Becker
0de6ab1b35
fix not working timesheet status and category actions: "disableClass", "enableClass" and "enableId" are now handled by action system itself, one should not set an explicit "enabled" attribute anymore
2013-08-26 08:24:50 +00:00
Ralf Becker
0984527661
let old eTemplate run its own confirmation from nextmatch_action.js
2013-08-26 07:36:51 +00:00
Ralf Becker
6fbfb6c784
propset svn:keywords
2013-08-26 07:36:19 +00:00
Nathan Gray
1d9589db99
If et2 object changes, we need the new one, not reject.
2013-08-20 23:20:56 +00:00
Nathan Gray
dca0c40418
Promote some useful common functionality to the app.js parent class
2013-08-20 19:20:10 +00:00
Nathan Gray
dba3bcc2aa
Update timepicker, some work on date-timeonly so it returns a value
2013-08-20 18:37:09 +00:00
Ralf Becker
b5ca4ac505
fixed jdots/Stylite template to contain no more inline scripts
2013-08-20 18:01:49 +00:00
Ralf Becker
73aa652c41
missing egw.js from last commit and egw_framework::window_focus() method
2013-08-20 13:25:36 +00:00
Ralf Becker
8b8faba28c
some docu and jsdoc tags to show the outline
2013-08-20 07:06:59 +00:00
Nathan Gray
ba80841c5e
Add some comments and a warning if action string can't be parsed to a function
2013-08-19 17:41:16 +00:00
Ralf Becker
cf25e7bae0
get Eclipse to display outline
2013-08-16 09:16:40 +00:00
Klaus Leithoff
12402514b9
* CKEditor/ASpell: hardening of jscode for IE10, as spellCheckerWin object may not be defined
2013-08-14 09:35:03 +00:00
Ralf Becker
118657ddee
using etemplate_new::ajax_proecess_content to allow to have etemplate still extend etemplate_old, making etemplate_new autoloadable
2013-08-06 18:24:30 +00:00
Ralf Becker
3afd9aaa18
check if quick-add selectbox is alread there, only create it again if not
2013-08-01 09:54:09 +00:00
Klaus Leithoff
7cf8a4d01b
* CKEditor/ASpell: adaption of aspell plugin to work with IE10
2013-07-26 10:40:28 +00:00
Nathan Gray
f65680a7ae
Add CSS to better match egw. Fix chosen sizes using new width attribute. Not perfect, but at least never too small.
2013-07-25 20:28:32 +00:00
Ralf Becker
37671ac812
fixed handling of attributes stored in data, was depending on order or attributes to work
2013-07-24 10:18:11 +00:00
Klaus Leithoff
e92e3694ee
replace currentapp occurence with egw_appName
2013-07-23 10:12:00 +00:00
Ralf Becker
16191d4db4
rendering quick-add menu on clientside and content-security safe, thought not yet in idots template, also removed not used inline javascript from idots
2013-07-22 19:20:13 +00:00
Nathan Gray
cd64ef06dc
Fix copy/paste error initializing app.js object
2013-07-20 14:16:21 +00:00
Ralf Becker
74cb73d2d2
moved most action "comfort" functions (with exception of nm_action and pagination) from server-side nextmatch class to client-side egwActions.updateActions() method, so they are available for all widgets
2013-07-20 13:45:22 +00:00
Nathan Gray
d4880a3351
Load & parse etemplate2 if set in egw.js object's data-attributes
2013-07-20 13:42:23 +00:00
Nathan Gray
26e9792256
Load javascript files before processing other response types, so all JS is available.
2013-07-20 13:41:17 +00:00
Nathan Gray
23fa7ed233
Make sure node is Draggable / Droppable before trying to undo it - though it probably should be
2013-07-20 13:38:09 +00:00
Ralf Becker
0d7c5455df
fixed wrong dependency
2013-07-19 15:22:54 +00:00
Ralf Becker
70c56ebab6
one more missing debug
2013-07-19 15:22:37 +00:00
Nathan Gray
6674e258fc
Tag widget works better with supporting library
2013-07-19 13:36:08 +00:00
Klaus Leithoff
ae848ffaee
upgrade to version 4.1.3
2013-07-19 11:13:23 +00:00
Klaus Leithoff
fbedb9d558
rebuild basic browsertest functionality not provided by jquery anymore
2013-07-19 11:07:22 +00:00
Ralf Becker
45e1fa8d2a
an other missing chosen fix re-added
2013-07-19 10:51:02 +00:00
Ralf Becker
60ac65e80b
updated choosen to 0.13.0 and re-merged r42794
2013-07-19 10:41:27 +00:00
Ralf Becker
d16c426fb6
first step towards content-security by passing parameters to egw.js script via data-attributes of script tag instead of using inline scripts in page
2013-07-19 08:45:26 +00:00
Nathan Gray
ba0fd9fa22
Update jQuery & jQuery UI to latest versions
2013-07-18 15:21:15 +00:00
Ralf Becker
792f1b26cc
replacing egw.LAB with egw_LAB, as egw object is shared by all iframes and popups, while LAB has to work on document
2013-07-17 12:47:21 +00:00
Nathan Gray
744345d751
Change egw.open() (which accepts _blank, _self, etc. as targets) to not pass invalid parameters to egw_link_handler() (which only accepts app names).
2013-07-15 16:03:37 +00:00
Nathan Gray
db75f272b8
Re-add lost reset methods
2013-06-18 14:32:36 +00:00
Nathan Gray
4f21c927cd
Some of the latest changes from chosen library
2013-06-17 22:57:21 +00:00
Nathan Gray
5bb349eb7a
Prevent too narrow chosen boxes
2013-06-17 22:01:11 +00:00
Nathan Gray
44e96714af
Fix adding distribution list (& maybe some other link issues) by looking for framework's link handler in open_link()
2013-06-12 17:04:42 +00:00
Nathan Gray
04fd3b82a9
If egw_link_handler() is defined, use that instead of window.open()
2013-06-12 16:56:12 +00:00
Nathan Gray
3300e82b27
Implement queue when setting preferences
2013-06-11 22:48:27 +00:00
Nathan Gray
d5b289e894
Add a global ajax callback so the et2 widget can stay in sync with the dhtmlxtree
2013-06-03 16:32:45 +00:00
Nathan Gray
fdfae8dd92
Add gridster library for home portlet layout
2013-05-29 19:23:49 +00:00
Nathan Gray
c2c910cee2
Add UI object into all links, in case of popup, so it's available to whatever is chosen
2013-05-29 19:20:36 +00:00
Nathan Gray
555de8e540
Include jQuery's UI object in drop action for location
2013-05-29 16:41:00 +00:00
Nathan Gray
51161e8ddd
For nested droppables, make children greedy to consume the action
2013-05-28 22:09:03 +00:00
Nathan Gray
4995e1fa08
When clearing, remove links too
2013-05-28 22:08:17 +00:00
Nathan Gray
6cfda15a5f
If a programmer calls dock on the splitter while it's already docked, just ignore it instead of breaking
2013-05-28 17:08:45 +00:00
Klaus Leithoff
c2667accee
*API/CKEdidor: upgrade to Version4.1.1
2013-04-29 08:20:40 +00:00
Klaus Leithoff
7b1047aacb
reintroduce r23367 (setFocus capability) and r29752 (oversized events)
2013-04-18 13:22:35 +00:00
Klaus Leithoff
8ffea421d2
updating wz_dragdrop.js from Walter Zorn from Version 4.87 to v. 4.91
2013-04-18 09:47:33 +00:00
Nathan Gray
b2cb70f15f
Use egw.LAB object if available
2013-04-12 16:30:30 +00:00
Ralf Becker
6577e30111
reverting change to original egw_json.js as it somehow needs to assign return value to some context to work
2013-04-12 16:23:10 +00:00
Ralf Becker
34a2f8c6e0
support for non-global func eg. "app.someapp.func" need to be in both egw_json objects (until we fix it so one calls the other)
2013-04-12 16:03:45 +00:00
Nathan Gray
eba9226dd3
Pass selected objects to callback
2013-04-12 10:27:04 +00:00
Ralf Becker
f7214ecd4f
docu fix
2013-04-12 08:23:23 +00:00
Nathan Gray
6d6feb06d7
Fix droppables to accept dragged if one of the types match
2013-04-11 12:53:23 +00:00
Nathan Gray
8192f13b3b
Fix typos preventing some drops
2013-04-11 12:22:34 +00:00
Nathan Gray
868c41643c
Only expire old data if there are no registered callbacks
2013-04-11 10:22:51 +00:00
Nathan Gray
8834d86818
Give a trace on all logs if debug level is 5 to help track things down
2013-04-10 14:14:06 +00:00
Nathan Gray
93eacb1b13
Show browser context menu when you ctrl + right click
2013-04-10 09:03:08 +00:00
Ralf Becker
26f54eb8ce
fixed error if get parameter has no equal sign, eg. /some/url?download
2013-04-09 16:17:43 +00:00
Nathan Gray
344bd88e4a
Open context menu with context menu key
2013-04-09 16:13:10 +00:00
Klaus Leithoff
86fbb6c966
add target ID to target.iface object
2013-04-09 15:43:42 +00:00
Klaus Leithoff
91dc1f9df9
allow for objectified egw functions like app.APPLICATION.
2013-04-09 14:39:56 +00:00
Klaus Leithoff
cd25f3e625
applying the context: suggested by nathan
2013-04-09 14:26:06 +00:00
Ralf Becker
ff7cf9ff17
propset svn:keywords Id
2013-04-09 12:10:48 +00:00
Nathan Gray
a0d18dc8fb
Fix properties
2013-04-09 12:10:09 +00:00
Nathan Gray
f3209731f3
Add inheritance stuff
2013-04-09 12:08:44 +00:00
Nathan Gray
978a90852c
Add a base object for application javascript code to contain it, and solve initialization timing issues
2013-04-09 08:45:59 +00:00
Nathan Gray
8e66bc33bf
Fix error in window module instanciation
2013-04-01 19:06:47 +00:00
Nathan Gray
792152497c
When an ajax response includes a directive to load a javascript file, try to load it using the API - allows cache to skip known files
2013-04-01 18:39:03 +00:00
Nathan Gray
d394cca06f
Avoid some init / destroy errors in color picker popup
2013-03-25 19:39:02 +00:00
Nathan Gray
19aef757f6
Use window from egw object, if available - still not quite right
2013-03-25 16:58:33 +00:00
Klaus Leithoff
d22fb56089
remove ckeditor3
2013-03-14 16:52:21 +00:00
Klaus Leithoff
48687977f9
* API: add CKEDITOR4
2013-03-14 16:16:49 +00:00
Klaus Leithoff
308c4a2951
* CKEDITOR/API: Version update to 3.6.6.1; handle IE10 problems regarding input behavior on enter
2013-03-14 09:55:03 +00:00
Nathan Gray
e685a222dc
Avoid JSON error popup by checking for the queue before using it
2013-03-13 19:31:06 +00:00
Klaus Leithoff
9b0623ff3a
fix typo/copy and past error on dataGetUIDdata
2013-03-04 16:25:39 +00:00
Nathan Gray
9616e44aff
Add ability to get all an application's preferences with '*'
2013-02-27 18:08:03 +00:00
Nathan Gray
987af6b473
Pass along internal lastModification time, and use it
2013-02-27 18:00:15 +00:00
Ralf Becker
139c12821a
added method to access data: egw().dataGetUiddata(_uid)
2013-02-27 12:41:19 +00:00
Nathan Gray
03c9c0804f
Split panel widget. Mostly working, needs some more special case for working with nm - they both want full page
2013-02-22 00:25:41 +00:00
Nathan Gray
89ec3ba866
Add some images of Class Diagram
2013-02-15 16:46:16 +00:00
Nathan Gray
a325583643
Add some overview of how this stuff fits together
2013-02-15 15:55:23 +00:00
Ralf Becker
52ea94cbee
using LABjs to load javascript files in order via egw.includeJS
2013-02-15 15:30:35 +00:00
Nathan Gray
a3647e1b00
Implement refreshing a single UID, limit known UIDs sent to server to 200
2013-02-14 11:22:27 +00:00
Nathan Gray
547d125a30
Check app_refresh to not get an error if an application overrides app_refresh() instead of using register_app_refresh()
2013-02-14 11:11:17 +00:00
Nathan Gray
588c6141c9
Return true to not throw an exception if the plugin worked
2013-02-14 11:01:50 +00:00
Ralf Becker
90370bc387
tracking state of existing script tags and allow to specify multiple callbacks for loading of javascript files
2013-02-13 16:26:42 +00:00
Nathan Gray
33e94d355c
Fix app_refresh to support applications that set window.app_refresh instead of calling register_app_refresh()
2013-02-13 12:47:17 +00:00
Nathan Gray
f2fc558e19
- Add static methods to get into etemplate2 widget context from outside. Call etemplate2.getByApplication(app) or etemplate2.getByTemplate(name) for a list of etemplate2 objects
...
- Add register_app_refresh() function to allow applications to specify a more intelligent way to refresh them
- Change egw_refresh() to call registered refresh function, or if etemplate2 is available try that over reloading the whole page
2013-02-12 15:46:14 +00:00
Ralf Becker
763279562c
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)
2013-02-08 13:23:58 +00:00
Nathan Gray
5513df1277
Fix bug in link handling that lost extra vars when extra vars are already in url
2013-02-06 15:04:26 +00:00
Nathan Gray
616e94a7b4
Add the ability to specify the client-side data cache prefix, to avoid collisions in applications where there can be more than one type of data
2013-02-06 10:49:46 +00:00
Klaus Leithoff
0bfa06c6b3
* API/CKEditor: Version update to 3.6.6
2013-02-05 09:56:01 +00:00
Nathan Gray
cfa0b7277a
Fix for IE overflow from Anthony Messina
2013-01-17 23:29:14 +00:00
Nathan Gray
6c03b0ec39
Try to avoid conflicts between framework's egw_appWindow() & jsapi's egw_appWindow()
2012-12-12 19:45:27 +00:00
Nathan Gray
340fec0611
- Remove debug
...
- Change font in results to match selected option and other selectboxes
2012-12-10 16:16:58 +00:00
Nathan Gray
74931d30a9
Return the result of opening so caller can use it
2012-12-04 00:13:12 +00:00
Nathan Gray
713a78dc96
Add a new debug level that includes a stack trace
2012-12-04 00:12:13 +00:00
Nathan Gray
b0e47a70f7
Fix bug where multi-select default text was not fully shown
2012-11-27 22:24:25 +00:00
Nathan Gray
2ea64a658b
Better handling of different hights & open up vs down
2012-11-27 21:32:53 +00:00
Nathan Gray
4dc9f6a472
Fix for chosen results pushing down bottom of popup window
2012-11-26 22:55:09 +00:00
Nathan Gray
0b3836a9f5
If chosen selectbox is close to bottom of the page, open options above the selectbox
2012-11-21 16:22:29 +00:00
Nathan Gray
1484e44c00
Left align chosen selectbox contents
2012-11-15 17:40:46 +00:00
Nathan Gray
8b55a21206
More changes to use chosen for fancy selectboxes - apply to egw multi-select and select user too
2012-11-13 22:14:00 +00:00
Nathan Gray
f72a582532
Use chosen plugin for to get fancy selectboxes. Selectboxes with more than 12 options get it turned on automatically
2012-11-12 19:29:23 +00:00
Ralf Becker
79d2c8f8a1
fixed typo causing alert with "undefied" message, instead of an error
2012-10-24 09:52:00 +00:00
Klaus Leithoff
259a917e38
ckeditor (current) version 3.6.4
2012-10-09 15:03:32 +00:00
Christian Binder
bd270b4010
fix ignored _onExecute attribute
2012-08-25 14:40:48 +00:00
Christian Binder
98d17d7ca4
removed accidentally found typo and logging
2012-08-14 12:02:47 +00:00
Nathan Gray
f198fb8f6e
Lets try this theme for a while, see how it looks
2012-07-18 16:50:49 +00:00
Nathan Gray
5eae11346d
If possible, include CSS here. Menu does not really work without it.
2012-06-19 18:55:03 +00:00
Nathan Gray
234832d1f0
Make sure lang 'array' is not a real array - that means it's empty, and will return 0 for missing translations. It is supposed to be an object.
2012-06-12 18:47:42 +00:00
Nathan Gray
71456ff8ef
Force nextmatch to load affected rows by clearing the data from data store
2012-06-06 21:56:18 +00:00
Frédéric Erpicum
e2cb9b44e7
resolve problems in opening windows for viewing or editing in projectmanager
2012-05-17 09:26:25 +00:00
Klaus Leithoff
e49c5850e5
fix for IE8 using method indexOf as key while iterating over trans
2012-05-09 14:49:24 +00:00
Nathan Gray
0527ec2a88
Implement color picker
2012-05-02 18:01:17 +00:00
Nathan Gray
55ad5a320b
Open in new window if target is not specified
2012-04-25 16:23:27 +00:00
Nathan Gray
22cb0667eb
Handle Firefox vs Chrome File API
2012-04-05 22:31:01 +00:00
Ralf Becker
dd410d49fb
fixed javascript error stalling everything: et2_csvSplit is not yet defined, thought I dont understand why this is needed here anyway: using _name.split("/",2)
2012-04-05 07:38:07 +00:00
Nathan Gray
df2ba7ddd6
Get images named like appname/imagename working again for images outside current app
2012-04-04 19:37:17 +00:00
Nathan Gray
08cb4581ee
egw_open wants the whole registry
2012-04-04 19:17:07 +00:00
Nathan Gray
6e103c4c1b
Get images named like appname/imagename working again
2012-04-04 19:16:19 +00:00
Andreas Stöckel
cfa9c190bb
Implemented keyboard navigation and data retrival for uids
2012-03-29 14:11:22 +00:00
Nathan Gray
bc25b917d4
Fix namespace events - it's event.namespace
2012-03-28 21:01:51 +00:00
Andreas Stöckel
0ae151e638
Got selection working; only problem left with popup menus is, that entries don't get focused on rightclick
2012-03-28 15:36:17 +00:00
Ralf Becker
b55250b81a
encoding and decoding of vfs special characters
2012-03-28 13:58:18 +00:00
Ralf Becker
2f62d7e3b5
allow to set target in mime-registry: need target _self (instead default _blank) for directories opened in filemanager
2012-03-28 13:01:37 +00:00
Ralf Becker
2630a39651
moved egw_links.js window contect specific parts to egw_open.js: egw().open() and egw().open_link() renamed from egw().call_link()
2012-03-28 12:37:03 +00:00
Ralf Becker
fbdb8f3c55
mime_icon method for vfs-mime widget
2012-03-28 08:10:57 +00:00
Andreas Stöckel
3a23d4bb21
Fixed bug with Ctrl-Key no longer working
2012-03-27 13:44:38 +00:00
Nathan Gray
257f823773
Fix handling of file url for vfs
2012-03-26 23:27:09 +00:00
Nathan Gray
3aa8e64f73
Give a warning & return if you try to translate an object
2012-03-26 23:24:56 +00:00
Andreas Stöckel
34a43e8869
Various bug fixes in the grid, implemented prefetching, workaround for performance issues regarding update, removed _lastModification
2012-03-26 15:28:02 +00:00
Andreas Stöckel
7f57f28f38
Deactivated last commit (slow because pending requests are ignored), lastModification is now set per app in the model
2012-03-23 16:38:08 +00:00
Andreas Stöckel
eadeb57f28
Fixed problem with registered data callbacks, when the window the callback belongs to is closed
2012-03-23 13:39:27 +00:00
Andreas Stöckel
b134b36678
fixed some issues with egw_data, improved egw_json exception handling
2012-03-23 12:45:13 +00:00
Andreas Stöckel
23f221456f
Fixed problem with IE, adapted egw_data.js to specification changes
2012-03-23 12:06:52 +00:00
Ralf Becker
2e8d60d5a0
reorganized egw.link methods to call each other (and not dublicate code), using mime-registry to open files, todo: special download url of eg. filesystem stream wrapper
2012-03-21 16:02:50 +00:00
Ralf Becker
514375e2b6
knowUids instead of knowRanges, widgetId and some docu changes
2012-03-20 12:37:45 +00:00
Andreas Stöckel
a45f2d5c69
Commited egw_data.js
2012-03-20 12:05:31 +00:00
Klaus Leithoff
988373b6c4
fix bug regarding the positioning of the drag n drop context menu popup
2012-03-16 12:30:52 +00:00
Ralf Becker
f74b8264a2
propset svn:keywords Id
2012-03-15 08:38:01 +00:00
Ralf Becker
94f1c840d0
add custom translations
2012-03-14 12:11:19 +00:00
Andreas Stöckel
3ecb7a4eec
Added 'langRequire' function which allows to load translations during runtime
2012-03-13 16:05:52 +00:00
Nathan Gray
1d74169848
Add time picker popup
2012-03-12 21:20:46 +00:00
Nathan Gray
da10c03762
Use window's jQuery to make it work
2012-03-12 17:26:33 +00:00
Andreas Stöckel
dc017ed889
Now again using a local etemplate2 instance on the client
2012-03-12 12:05:14 +00:00
Andreas Stöckel
36314a077e
Fixed bug with etemplate2 not working properly especially in idots: JS files only get included if they really have not already been included; egw object gets included before 'lang' in idots
2012-03-12 09:20:24 +00:00
Nathan Gray
f512d1efae
Move calendar icon inside input box
2012-03-09 18:46:29 +00:00
Andreas Stöckel
d486e50a57
phpgwapi:
...
* Changed way of how "webserverUrl" gets set - any type of data can now be
injected into the egw object by creating an object with the data and an
entry "prefsOnly" set to true. This allows to ensure, that "webserverUrl"
is the first thing that is being set in the egw object (as needed when
including new JS/CSS files at runtime)
jsapi:
* Fixed including JS/CSS files at runtime in other windows than the root
window
* Added "ready" function/module, which provides an alternative to the
$j("ready") function. The ready module provides the functionality to
postpone calling the "ready" until certain events happened.
* using jQuery calendar object instead of jscalendar in the calendar
function.
* added "jquery" module which takes care of including all jQuery modules
in all windows
* added possibility for modules to update constants using the "constant"
function.
* added possibility for modules to access certain other modules using
the "module" function
etemplate:
* Using new egw(window).ready function to build the template first if
loading has finished.
2012-03-09 15:32:29 +00:00
Andreas Stöckel
60a2fd9855
Added calendar module for the client side api, roughly working, needs some further work (currently not shown as popup but at the bottom of the page, months etc. are displayed as 'undefined', year number is screwed up)
2012-03-08 11:29:46 +00:00
Andreas Stöckel
292f18bc1a
Window dependant api modules do now get reinstanciated, if the window location changes
2012-03-07 15:20:04 +00:00
Andreas Stöckel
c8bf9ed6ef
Fixed design problem in egw_core, which caused window-local modules to be instanciated multiple times if used for multiple applications inside a window. Added egw_css.js as replacement for et2_core_stylesheet.js, which allows to add stylesheet rules at runtime
2012-03-07 14:04:25 +00:00
Andreas Stöckel
d996537c35
Improved error message for exception in JSON plugins
2012-03-06 15:25:27 +00:00
Andreas Stöckel
049cbd88dc
Now using the etemplate code from the root instance (etemplate2.js acts as a egw api plugin); fixed egw.json plugins; fixed problem with 'instanceof Object', which does not work when sharing code over multiple windows
2012-03-06 13:22:01 +00:00
Ralf Becker
4a88a9558c
egw_json plugin "html" replacing document content with send html
2012-03-06 09:50:43 +00:00
Andreas Stöckel
130dc87e83
Concatenated dhtmlxmenu.js and dhtmlxmenu_ext.js to one file, to stop the message 'dhtmlxmenu_ext.js required'
2012-03-06 09:35:54 +00:00
Andreas Stöckel
5f3b572cc9
Changed hash function for egw api instances
2012-03-05 16:05:48 +00:00
Andreas Stöckel
1bc16c1b8e
Finished egw json api
2012-03-05 15:02:00 +00:00
Andreas Stöckel
d310b14ecf
Client side API now supports modules which are instanciated per application or per window; removed et2_debug function from et2_core_common, now using corresponding API function.
2012-03-05 13:07:38 +00:00
Andreas Stöckel
04db17f9e5
Fixed hypothetical problem with certain entries not being updated properly on app instances of egw
2012-03-02 09:02:36 +00:00
Andreas Stöckel
3fdf5fdfd0
Removed unneeded egw_app.js
2012-03-01 16:25:32 +00:00
Andreas Stöckel
1876a5faa1
Splitted the egw object into multiple files, added system for allowing a application specific client-side api (use 'egw' as a function)
2012-03-01 16:24:29 +00:00
Andreas Stöckel
90379afe16
Updated jQuery to version 1.7.1
2012-03-01 12:43:06 +00:00
Nathan Gray
ee98b63c0b
Set gantt overflow to auto to hide the scrollbars when not needed.
2011-12-14 17:12:09 +00:00
Nathan Gray
6d17a1a168
Add dhtmlxGantt for gantt charts
2011-11-16 19:31:00 +00:00
Klaus Leithoff
9fad5b84ab
* ckeditor/aspell: added check for language availability check on extended dict (Lang_Countrycode) first, then fall back to lang -> e.g.: check on en_GB, if not available try using en
2011-11-16 09:15:41 +00:00
Nathan Gray
f8489c0ed1
Update jqplot to
...
jquery.jqplot.1.0.0b2_r947
2011-11-07 20:37:55 +00:00
Klaus Leithoff
d844dcdbd5
* API: updating CKEDITOR to version 3.6.2, altering editor modes and availability of toolbar options
2011-10-28 09:12:40 +00:00
Nathan Gray
390bb1f6f0
Get all button images working (in timesheet & infolog list at least)
2011-09-22 21:23:30 +00:00
Nathan Gray
4a3c3cf659
Add fallback handling using typeof when input.constructor fails
2011-09-19 23:19:16 +00:00
Ralf Becker
cea61e2436
fixed typo stalling mail notifications
2011-09-16 16:11:05 +00:00
Ralf Becker
859f83bf39
if nothing left in queue, stop interval-timer to give browser a rest
2011-09-14 14:22:38 +00:00
Ralf Becker
77f2a043fc
local caching and queueing of egw.link_title() requests
2011-09-13 19:55:06 +00:00
Ralf Becker
5cadd29d58
Basic egw.link_title(_app,_id,_callback,_context) method.
...
Plan is to run a clientside cache and own queue for link_titles, as server can query titles for N id's for a given app more effiently then N separeate queries.
2011-09-13 18:23:43 +00:00
Ralf Becker
516b977472
ability to queue ajax requests on the client and send them as a single ajax request every N ms to the server
...
a) instead of a single request like: new egw_json_request(menuaction, params).sendRequest(true, callback, context);
b) you call: egw.jsonq(menuaction,params,callback,context)
The server callback is identical for both kinds of requests. All egw_json_response methods can be used and the callback is optional.
2011-09-13 17:27:02 +00:00
Ralf Becker
387be881ee
egw.link(_url, _vars) method and using it for JS event handler
2011-09-09 19:41:09 +00:00
Andreas Stöckel
df36138012
Changed loading order of dhtmlxcommon
2011-09-09 14:50:50 +00:00
Andreas Stöckel
50ad9e4ba0
Included dhtmlx js files in egw_menu_dhtmlx.js, fixed problem with removing action objects, improved egw_include_mgr a bit
2011-09-09 14:03:18 +00:00
Ralf Becker
ea03c4032b
implemented link attributes for image-widget and added them to xulio, some docu for describtion
2011-09-08 20:44:53 +00:00
Nathan Gray
6585ff14e6
Add a place for egroupware to tap into file request before it's sent
2011-09-08 20:32:58 +00:00
Ralf Becker
008f009d80
- implemented new egw.link_app_list(_must_support) and egw.link_get_registry(_app, _name) methodes
...
- using egw.link_app_list('query') in link widget (no need to transfer it additonally)
- added some more docu to egw object
2011-09-08 12:24:53 +00:00
Nathan Gray
65a37234c4
Add some jquery resources - CSS and icons.
2011-09-07 23:32:03 +00:00
Nathan Gray
8875c94c24
Async file uploads
2011-09-01 22:07:30 +00:00
Ralf Becker
046c0919cc
make basic data of current user available via egw.user(_field)
2011-08-31 12:17:34 +00:00
Ralf Becker
1e7b17203f
- if image not found, check if it might contain extension and try without (better is not to use extension at all!)
...
- changed default to current app as in API, but it is not yet working, because egw object runs in framework for jdots :-(
2011-08-31 06:26:05 +00:00
Ralf Becker
ea7ad6318d
new clientside image-name to url map: egw.image(_name, _app="phpgwapi")
...
eg. egw.image('favicon') returns '/egroupware/phpgwapi/templates/default/favicon.ico'
--> pondon to serverside common::image($app,$name) method
2011-08-30 22:19:38 +00:00
Andreas Stöckel
0bb328dc6d
Initializing configs variable with empty object, to have code running standalone
2011-08-30 09:15:00 +00:00
Nathan Gray
331cd20bf3
Add base64 functions for communciationg with felamimail
2011-08-29 21:14:09 +00:00
Ralf Becker
4c23b3766e
egw API update missed in r36331:
...
- sending EGroupware configuration (non-sensible stuff) to browser and make it available via egw.config(_name, _app="phpgwapi")
- sending link-registry in the same file
- used javascript file uses etag to ensure there's no need to load it on each request
2011-08-28 08:28:53 +00:00
Ralf Becker
a925764fc4
- dynamical (synchronious) loading preferences (other then "common") from server via egw.preference(_name, _app)
...
- setting preferences on server via egw.set_preference(_app, _name, _value)
- enable calling of active framework / template class via using egw_framework instead of not known used framework class of user, eg. "home.egw_framework.ajax_func.template" instead of "home.idots_framework.ajax_func.template"
2011-08-26 09:34:18 +00:00
Ralf Becker
d295c17e90
fix for community.egroupware.org bug #3027 : Open item in element list no longer working
2011-08-26 07:31:18 +00:00
Andreas Stöckel
55bf8f9570
additional check for existance of application in lang array
2011-08-23 17:11:45 +00:00
Ralf Becker
16c6a8d4f9
got clientside translations working for etemplate2 apps: egw.lang("%1 timesheet(s) %2", 5, egw.lang("deleted"))
2011-08-23 16:15:54 +00:00
Ralf Becker
24e34f7927
new clientside API object currently supporting the following methods:
...
- egw.preferences(_name, _app='common') return preference _name of _app (only common prefs loaded currently)
- egw.open() allowing to open app-entries utilising the link registry, deprecating egw_open from jsapi.js
- egw.lang(_msg, _arg1, ..., _argN) placeholders are not yet implemented
2011-08-23 14:29:56 +00:00
Nathan Gray
1761ea02db
Add in jquery.tools form tools
2011-08-17 21:35:22 +00:00
Andreas Stöckel
c999373490
Added possibility for egw_json plugins to be executed in the context of the creator of the request object
2011-08-15 14:26:37 +00:00
Nathan Gray
a30b864ddd
Add jqplot for graphing
2011-08-09 23:10:50 +00:00
Andreas Stöckel
2e9104ecea
Added dependencies to the egw_action js files
2011-08-03 14:04:30 +00:00
Ralf Becker
04e032e7af
fixed problem "found" on www.autosectools.com
2011-08-03 08:29:53 +00:00
Andreas Stöckel
10e5735e16
Allowing mutliple action-link groups to be defined for grid entries. These must be comma seperated.
2011-08-02 11:51:58 +00:00
Klaus Leithoff
09963248f1
* API: upgrade ck editor from v3.3.1 to v3.6.1 (latest release as of June 2011)
2011-08-01 11:48:47 +00:00
Klaus Leithoff
cae37dab26
if there is only a single event in the action, buffer it into/with a window.setTimeout function call, and wait for the trigger to execute and clean up as it does with multiple actions on a target
2011-07-21 10:50:33 +00:00
Ralf Becker
8e83e41263
- improved mobile template: calendar & email sidebox is showing now, removed most of the former css hidden stuff
...
- fixes jscalendar to work will in sliding sidebox
2011-07-09 16:35:18 +00:00
Andreas Stöckel
44b8c43e1e
Fixed keyboard navigation in treeview
2011-07-03 12:33:18 +00:00
Ralf Becker
03e379e570
* jQuery: changed $ to $j to work around mootools use in Joomla templates and other js code in imported projects
...
required to change $ --> $j:
phpgwapi/*
jdots/*
etemplate/*
stylite/*
felamimail/*
admin/*
news_admin/*
projectmanager/*
importexport/*
infolog/*
ranking/*
required, but not automatic:
importexport/setup/etemplates.inc.php
phpgwapi/js/jquery/*
negative, not to touch or revert later:
phpgwapi/inc/savant2/Savant2/Savant2_Compiler_basic.php: '(\$(.+))' => 'print $1',
phpgwapi/js/dhtmlxtree/libCompiler/core.js
sitemgr/*
phpfreechat/*
gallery/*
activesync/include/smb.php: '^\tIPC\\\$(.*)[ ]+IPC' => 'skip',
etemplate/inc/class.bo_merge.inc.php: if ($this->table_plugins && preg_match_all('/\\$\\$table\\/([A-Za-z0-9_]+)\\$\\$(.*?)\\$\\$endtable\\$\\$/s',$content,$matches,PREG_SET_ORDER))
find phpgwapi jdots etemplate stylite felamimail admin news_admin projectmanager importexport infolog ranking \
\( -name '*.php' -o -name '*.js' \) -exec grep -q '\$(' {} \; -print \
-exec sed -i '' 's|\$(|$j(|g' {} \;
svn revert phpgwapi/inc/savant2/Savant2/Savant2_Compiler_basic.php phpgwapi/js/dhtmlxtree/libCompiler/core.js \
importexport/setup/etemplates.inc.php phpgwapi/js/jquery/jquery.js etemplate/inc/class.bo_merge.inc.php
additional changes:
phpgwapi/js/jquery/jquery.js: window.$ --> window.$j
phpgwapi/js/egw_json.js:291 this.request = $j.ajax({url: this.url,
jdots/templates/jdots/head.tpl:59 $j(document).ready(function() {
phpgwapi/js/egw_action/egw_grid_view.js: $.browser --> $j.browser
importexport/setup/etemplates.inc.php: etemplate editor importexport.wizard_basic_export_csv.choose_fields onclick of check icon changed
phpgwapi/js/egw_action/tests/*.html
phpgwapi/js/egw_action/tests/js/jquery.js: window.$ --> window.$j
2011-07-03 09:00:36 +00:00
Andreas Stöckel
a81e83a6e6
Prevented grid from loading all data when it is not visible
2011-06-26 15:44:08 +00:00
Andreas Stöckel
18f6a20df4
Included accidently commented out setTimeout commands again
2011-06-26 15:06:39 +00:00
Andreas Stöckel
44f73628e2
Implemented unregistering ActionImplementations when ActionObject.remove is called, ActionObject.clear now calls 'remove' on all child objects.
2011-06-26 14:57:05 +00:00
Andreas Stöckel
49e6780f07
Shotcuts are now generated on the server side, made key codes class constans
2011-06-25 14:27:30 +00:00
Andreas Stöckel
42e0b10797
Fixed bug with two many prefetch request (also doubles) - a part of this was caused by a wrong parameter sequence for the queueTimeout function, the other part was caused by the 'hasColumn' function not working correctly.
2011-06-25 13:45:46 +00:00
Ralf Becker
ea6b823bd4
additional parameters _replace and _with for egw_refresh to modify the url, fixed not working update of existing msg parameter
2011-06-24 14:11:37 +00:00
Ralf Becker
ba46b54355
improved exception message
2011-06-24 10:26:46 +00:00
Andreas Stöckel
416ff4787f
Fixed bug with SHIFT + Arrow keys not working anymore
2011-06-20 19:25:50 +00:00
Andreas Stöckel
4a1d2cd72c
Fixed bug with other jquery drag drop stuff (like sorting apps in the sidebox menu in the stylite template) not working correctly
2011-06-19 11:15:37 +00:00
Andreas Stöckel
bf8437551d
Implemented egw_action shortcuts
2011-06-19 10:48:51 +00:00
Andreas Stöckel
f3ccd96f03
Grid and nextmatch aoi now reset the input element focus once a row is clicked
2011-06-16 20:43:33 +00:00
Andreas Stöckel
41c4d4cee4
Enabled toggeling the grid selection with CTRL+A
2011-06-16 17:08:32 +00:00
Andreas Stöckel
1706f0fb22
Added function for removing actionObjects
2011-06-16 17:03:39 +00:00
Andreas Stöckel
28e6ff6920
Implemented executing the default action with the return key
2011-06-16 13:43:46 +00:00
Andreas Stöckel
9db8424e15
Implemented default focusing of objects in the tab manager, added new egw_getAppName function on js side, which returns the name of the currently active application - this is needed for the keyboard handler to pass the key events to the correct application object manager.
2011-06-15 20:54:58 +00:00
Andreas Stöckel
1c600b919d
Implemented new selectmode in grid, added grid.setSelectmode method to set the selectmode
2011-06-15 16:31:33 +00:00
Andreas Stöckel
085d8bf07f
Fixed problem with column header being displayed on checkbox columns, and always disabling the select-cols menu entry for it
2011-06-15 15:26:46 +00:00
Ralf Becker
47439899a5
propset svn:keywords Id
2011-06-14 12:35:36 +00:00
Andreas Stöckel
2e457e4b75
Added forgotten keymanager unit
2011-06-14 10:13:47 +00:00
Andreas Stöckel
e03d416fda
Implemented first version of key-board control over action-objects. For now arrow/page up/down and CTRL-A works.
...
Known Issues:
- Keyboard navigation in egw_grids (like felamimail) may not work correctly when navigating to not-yet loaded items (current implementation for that is more a hack)
- short-cuts not yet implemented
- not tested in IE, Safari, FF 3.6
- felamimail sometimes loads all/many of the emails you were navigating over
2011-06-12 16:41:40 +00:00
Andreas Stöckel
49ece38c6c
Don't send a location header if we currently handle an ajax response/request - use the corresponding json function instead. Doing this on the server side is neccessary as the location header is one of the few ones which is handled by the browser before any XMLHttpRequest event is fired (according to W3C specification)
2011-06-11 21:27:15 +00:00
Ralf Becker
ed8c386a12
using egw_refresh to allow fmail to ignore the saved/deleted message
2011-06-06 15:11:25 +00:00
Ralf Becker
f8d2bd1e6b
- introduced preference of type "color"
...
- modernized color picker a litle to give a visual feedback of the color
2011-06-04 09:30:46 +00:00
Andreas Stöckel
4477efd6dc
Added possibility to add/remove css classes from individual grid view rows
2011-06-03 14:08:49 +00:00
Andreas Stöckel
3a8d1e3227
Fixed problem with double click handler not being bound correctly
2011-06-03 11:21:36 +00:00
Ralf Becker
2bba68b575
nicer workaround
2011-06-03 10:14:12 +00:00
Ralf Becker
310b22c172
* workaround for Fennec bug https://bugzilla.mozilla.org/show_bug.cgi?format=multiple&id=648250 window.(outerHeight|outerWidth|screenX|screenY) throw exception
2011-06-03 09:50:27 +00:00
Andreas Stöckel
0d66fcd9d1
Executing default action on click on mobile devices
2011-06-02 22:53:23 +00:00
Andreas Stöckel
d02c638ca9
Implemented global action manager and object manager, implemented possibility of adding sub-action-managers
2011-06-02 14:48:03 +00:00
Ralf Becker
423a1d9303
new method egw_appWindowOpen(app,url)
2011-06-02 12:37:49 +00:00
Ralf Becker
47e2764da0
new javascript method egw_open() to open egw_entries using there registered url and popup sizes from the link registry
2011-06-02 11:13:41 +00:00
Andreas Stöckel
9eb51b8b74
Removed accidently commited debug message
2011-05-31 20:12:51 +00:00
Andreas Stöckel
fc622875d4
Added forgotten aoi file for dhtmlx menus
2011-05-31 20:10:30 +00:00
Andreas Stöckel
36d2f605cb
Fixed problem with an container object returning 'true' for 'getAllSelected', even if it has no children.
2011-05-31 17:02:51 +00:00
Andreas Stöckel
2e84fb63e2
added clear function to egwActionObject, reverted change done by klaus leithoff in egw_action.js as it caused serveral problems, fixed problem with no actions being executable when all action objects were selected using the setSelectAll function, added iframeFix to egw_action_dragdrop.js, made draggedOver style working for all tables.
2011-05-28 15:24:31 +00:00
Andreas Stöckel
fbb5551dca
Fixed problem with requesting already loaded JS and CSS files, fixed problem with icon height not being updated for table rows in IE
2011-05-22 18:42:23 +00:00
Klaus Leithoff
f7cb239a14
if the list is empty/the action object has no children, we do not consider that as allSelected
2011-05-16 12:05:54 +00:00
Nathan Gray
19dd8d19bd
Send ajax errors to console.error instead of alert
2011-05-10 14:49:25 +00:00
Andreas Stöckel
3906423d4a
Fixed problem with context menu opening into the wrong direction if a vertical scrollbar is available. Notified developers.
2011-05-08 19:57:01 +00:00
Andreas Stöckel
b416719eb8
Fixed issue with drag-onExecute handler not being called
2011-05-07 11:22:23 +00:00
Andreas Stöckel
2f99f7ff79
Fixed problem with dhtmlxMenu overflowing at the top in windows with scroll bars - notified the developers, so this fix is most likely to be included in the next dhtmlxmenu release
2011-05-07 10:32:31 +00:00
Ralf Becker
fb5ea143be
- returning checked state of all checkboxes, not only select_all, in $content[nm][checkboxes]
...
- $content[nm][select_all] is now only reference to $content[nm][checkboxes][select_all]
- checkboxes need no default onExecute, therefore removed nm_select_all method
- improved documentation for action stuff in nextmatch widget
- added egwAction.getActionsByAttr(_attr, _val) method returning all actions with a given attribute and value
2011-04-27 07:49:46 +00:00
Ralf Becker
af75f60ff4
fixed IE(8) javascript error: "null" is null or not an object
2011-04-24 12:40:06 +00:00
Andreas Stöckel
eab7a5fdcc
Fixed issue with menu overflowing on the top
2011-04-23 09:24:11 +00:00
Andreas Stöckel
fcaef1ee58
resolved issues with for-in loop and ie
2011-04-23 09:07:31 +00:00
Andreas Stöckel
f2b739e332
Added additional parameters to the 'enabled' callback (1. the action, 2. an array of action object, 3. the current action object)
2011-04-17 20:27:23 +00:00
Andreas Stöckel
cbf233bccd
action type now defaults to 'popup'
2011-04-17 19:10:46 +00:00
Andreas Stöckel
8e9279c7b7
passing new checkbox state to underlying menu implementation after action execution
2011-04-17 17:55:37 +00:00