Commit Graph

288 Commits

Author SHA1 Message Date
Nathan Gray
fd737f10dc Change queued AJAX to go async 2013-11-20 23:40:26 +00:00
Nathan Gray
089144d986 Avoid adding CSS files again if they're already in the header 2013-11-19 23:22:33 +00:00
Hadi Nategh
74d0797904 Make sure only fall into et2 specific reload for egw_refresh when the etemplate2 object has value 2013-11-19 08:36:08 +00:00
Ralf Becker
8e69433829 use template specific images for foldertree, use "template" handler for all calls to template/framework object, NOT instanciating a new one using eg. a parent class 2013-11-15 16:28:24 +00:00
Nathan Gray
fb2c103cef Use current app to get around missing etemplate run rights 2013-11-13 23:57:49 +00:00
Nathan Gray
31a42e3110 Use current app to get around missing etemplate run rights 2013-11-13 23:22:44 +00:00
Ralf Becker
aeb6ebd84c instanciate app.js object from egw.js, so non et2 apps can use it too, get et2_dialog working from app.calendar outside listview 2013-11-05 18:08:07 +00:00
Ralf Becker
6d226a7921 split constructor function and place of instanciation for app.js objects: app[appname] = new app.classes[appname](); 2013-11-04 20:54:23 +00:00
Nathan Gray
07ff17704f Refresh current app or target app too, like it says it's supposed to 2013-11-04 18:57:20 +00:00
Nathan Gray
4d29125c41 Fix some window/scope issues with jquery & plain assign handlers to make sure they operate on the window, not the request context (which can be anything) 2013-10-28 22:22:09 +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
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
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
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
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
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
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
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
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
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
Ralf Becker
cf25e7bae0 get Eclipse to display outline 2013-08-16 09:16:40 +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
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
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
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
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
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
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
b2cb70f15f Use egw.LAB object if available 2013-04-12 16:30:30 +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
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
Ralf Becker
26f54eb8ce fixed error if get parameter has no equal sign, eg. /some/url?download 2013-04-09 16:17:43 +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
19aef757f6 Use window from egw object, if available - still not quite right 2013-03-25 16:58:33 +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
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
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
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
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
2ea64a658b Better handling of different hights & open up vs down 2012-11-27 21:32:53 +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
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
55ad5a320b Open in new window if target is not specified 2012-04-25 16:23:27 +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
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
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
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
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
Nathan Gray
390bb1f6f0 Get all button images working (in timesheet & infolog list at least) 2011-09-22 21:23:30 +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
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
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
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