Commit Graph

331 Commits

Author SHA1 Message Date
nathangray
aad2a77666 JS quality improvement
- add missing declaration
2021-05-19 10:01:07 -06:00
Hadi Nategh
67fb220778 Check popup blocker for when trying to open mail compose popup from filemamanger/Collabora 2021-05-17 16:27:51 +02:00
Ralf Becker
eefd8ed972 improve egw.langRequire to return a Promise, if no callback specified 2021-04-29 09:45:16 +02:00
nathangray
8fb0048c17 Fix linking an image/svg+xml image to an unsaved entry would give an error
An error happened! (EGroupware\Api\Exception\AssertionFailed): File 'true' is not an absolute path!
was generated because we tried to use webdav.phptrue as the thumbnail
2021-04-28 12:00:02 -06:00
Hadi Nategh
c370941c51 Keep private app objects if dialog gets destroyed 2021-04-20 15:30:46 +02:00
nathangray
d5aacd190d Add 'no_quick_add' link registry setting so apps can opt out of the quick add 2021-03-30 10:12:29 -06:00
nathangray
87ff6842ea Api: Stop annoying "column saved" message that kept coming up 2021-03-24 10:21:02 -06:00
Ralf Becker
fa0e7715c1 mark context as optional parameter 2021-03-15 08:57:45 +02:00
Ralf Becker
46c4e0e118 add daily cache-buster to client-side included app.js files for applyFunc 2021-03-12 11:23:26 +02:00
Hadi Nategh
e5674bbc5d Fix missing mailvelope readonly properties from egw_app object 2021-03-09 15:19:27 +01:00
Ralf Becker
d2626085f6 fix wrong context causing eg. attachments to mail to no longer work 2021-03-08 21:20:11 +02:00
nathangray
19bd3a03b0 Addressbook: Update CRM view contact info in sidebox if it's changed by push message 2021-03-04 13:53:52 -07:00
nathangray
df54dcace4 Apply client-side push refactoring to calendar, infolog, timesheet 2021-03-04 11:27:35 -07:00
Ralf Becker
58ae23c74c allow "app.<appname>.<method>" in link registry and use it to open CRM view 2021-03-04 11:50:13 +02:00
Ralf Becker
7e4ccc8311 fix some points in top-menu and probably some other stuff using et2_call were not working 2021-03-03 19:13:45 +02:00
Ralf Becker
a467bab01f return hashed appName of opened tab eg. to set notifcation counter 2021-03-02 21:00:59 +02:00
Ralf Becker
7a060b205b not overwriting call and apply method of egw function/object using callFunc and applyFunc instead, fixes several problems 2021-03-02 12:16:47 +02:00
Ralf Becker
e36c6c4cec move global et2_call function to egw.call and egw.apply methods, ensuring app.js is loaded, if not yet loaded, also using that as apply plugin for egw.json 2021-03-01 11:50:41 +02:00
nathangray
1eb174d3f7 For push update filter, consider empty array as having no value 2021-02-25 13:59:32 -07:00
nathangray
158e65fc90 Take contact shares into account for push ACL checks 2021-02-25 09:11:39 -07:00
Hadi Nategh
1f41bba904 Fix youtube API loading player after initiation 2021-02-25 13:51:20 +01:00
nathangray
3c72462b5e Enable push for addressbook
Refactor EgwApp.push() to cover more common stuff for simpler app code
2021-02-24 09:18:42 -07:00
Hadi Nategh
2a2f0bf390 Keep darkmode state in serverside session too. Fix darkmode state in egroupware iframes. 2021-02-24 12:22:27 +01:00
Ralf Becker
cf9e3ae4e1 WIP to display calls in calendar 2021-02-23 00:16:51 +02:00
Hadi Nategh
dc2f80c39c Some TypeScript definitions 2021-02-10 14:12:27 +01:00
Hadi Nategh
b9570b9b60 Some fixes for darkmode:
- Fix darkmode not switched in popups
- Fix a quick white page shown before switching to darkmode when it's set to 'auto'
2021-01-27 12:26:37 +01:00
Hadi Nategh
dad82bf1f1 Implement auto color-scheme in order to respect browser's selected prefers-color-scheme 2021-01-26 17:04:37 +01:00
nathangray
6af3e37bed * Etemplate: Add context menu action on linked files to copy them somewhere else
Also, update vfsSelect to use request(), so it processes the additional stuff in response so we can have a success message.
2020-12-21 13:53:24 -07:00
Hadi Nategh
f21ac58c87 Introduce dark/light mode theme switch into framework 2020-12-15 20:24:25 +01:00
nathangray
9bc4c41941 Api: Clear sorting with 'No filters' favorite 2020-11-16 10:57:04 -07:00
Hadi Nategh
f064ff8242 Make sure the params exists before addressing it 2020-11-03 11:47:26 +01:00
Hadi Nategh
b0e2e1f1be Open crm view for contact link 2020-10-29 11:47:29 +01:00
nathangray
bf615644d4 Api: Add egw.request() into egw_global.d.ts 2020-10-27 16:17:32 -06:00
Ralf Becker
086771ee66 try to fix race-condition in reconnecting a "lost" websocket connection 2020-10-27 14:19:25 +01:00
Ralf Becker
82d7a103a9 try to fix race-condition in reconnecting a "lost" websocket connection 2020-10-27 14:16:11 +01:00
Ralf Becker
765b545697 * SmallPART: fix not working LTI launch after last maintenance release
checking if we are about to load required files, before redirecting to cd=popup to load them
2020-10-22 10:00:27 +02:00
Hadi Nategh
d4d63d382e Fix error message still remains even after connection is up again 2020-10-21 11:54:45 +02:00
nathangray
5bf4d4866f WIP on sharing prompt to ask about mounting new share 2020-10-20 16:47:26 -06:00
Hadi Nategh
a8c136f1cc No longer need to send ajax=true at the end of url 2020-10-20 16:04:32 +02:00
nathangray
38ff63f778 Api: New JavaScript API method egw.request(menuaction : string, parameters : any[]) : Promise
Does an AJAX request, and resolves the returned Promise with just the data (no piggybacks) when it arrives from the server.  Any registered data handlers are run before resolving the Promise.
2020-10-16 10:33:13 -06:00
Ralf Becker
83eabe4d8e login page does NOT need client-side api and redirect with cd=popup shows as message 2020-10-16 09:45:30 +02:00
Ralf Becker
1ef16c9c55 closing websocket explicit, before reopening it, to not end up with multiple connections and doublicated messages 2020-10-15 18:17:31 +02:00
Ralf Becker
663816769e fix TypeError this.openWebSocket() is not a function 2020-10-14 22:28:32 +02:00
Ralf Becker
313a378539 * Swoolepush: periodically pinging server from browser to detect lost websocket connection and reconnect 2020-10-14 20:16:13 +02:00
Ralf Becker
175d94f3e3 * Api: detect if framework data is missing for popups too and redirect to cd=popup to load it 2020-10-14 17:31:36 +02:00
nathangray
857943720e Api: Make sure we don't add any unwanted data to account store
Push fallback can piggy-back some data, we don't want it
2020-10-05 10:55:34 -06:00
Ralf Becker
7db25dce5e * Admin: push server test to diagnose problems and improved recovery from failed requests / network problems 2020-10-02 20:28:02 +02:00
Hadi Nategh
2ed186079e Implement openTab for egw_open object and make tab attributes configurable 2020-09-24 16:19:56 +02:00
Hadi Nategh
4bf65486ef WIP of framework's multitab implementation 2020-09-23 16:55:35 +02:00
Hadi Nategh
c01beef108 We can't use let in js files as we still supporting old devices with es5 only 2020-09-17 15:36:02 +02:00
nathangray
f38f61cf1b Correct parameters in TS 2020-09-15 09:05:48 -06:00
nathangray
210c54b689 Etemplate: More fixes for row count when updating / adding
Now fixed the situation where 1 row was updated & 1 added, but the added one did not match filter and was not returned when server was asked.  Now removed blank row waiting for it, and keeping row count consistent
2020-09-01 14:49:06 -06:00
nathangray
b43f51b52e Api: Handle refreshing multiple UIDs but not getting them all back.
Previously we were assuming only 1 was requested, now properly handling multiple UIDs in a single request and not all of them being returned (eg ACL or doesn't match filters)
2020-08-31 14:57:22 -06:00
nathangray
bec67d63ee Etemplate: Change how nextmatch handles update & refresh push messages 2020-08-07 09:19:15 -06:00
Hadi Nategh
c43d0684cc Do not show close button on success message and dismiss it on container click handler 2020-08-07 13:29:30 +02:00
Ralf Becker
3b4d8071e9 improve fix not updated number of nextmatch rows on push type "delete" 2020-08-05 18:48:35 +02:00
Ralf Becker
321cd60fb5 fix not updated number of nextmatch rows on push type "delete" 2020-08-05 18:26:40 +02:00
Hadi Nategh
70e8a1b3ae Fix errors happening in mobile framework 2020-08-03 15:21:11 +02:00
Ralf Becker
33e88d25ae * Preferences: use push to ask every affected client to reload preferences, if affected 2020-07-31 09:47:49 +02:00
Hadi Nategh
1624ceae07 Return an object for egw message in order to have access to it after display 2020-07-30 15:01:50 +02:00
Hadi Nategh
14c908de78 Do not include egw message in print 2020-07-29 15:45:25 +02:00
Ralf Becker
08acad038c * Mail: replying to a mail should only update icon, not move it to top of list 2020-07-29 13:58:15 +02:00
Hadi Nategh
7900bfd9cd Avoid outputting same message multiple times if it's still alive 2020-07-24 12:46:29 +02:00
nathangray
6d2af76576 * Infolog: Push updates 2020-07-23 13:34:08 -06:00
nathangray
a6688ab3f8 Etemplate: Allow app to specify a new row index for updated rows as well. 2020-07-22 12:00:01 -06:00
nathangray
f0b924008b Etemplate: Add a callback so apps can decide where to put new push rows 2020-07-21 15:32:22 -06:00
nathangray
69420c19ad Api: Handle add push messages in the nextmatch list 2020-07-20 13:43:26 -06:00
Ralf Becker
bf44ee753a WIP push for mail (currently only Dovecot with further configuration!) 2020-07-20 12:09:08 +02:00
Hadi Nategh
1f066dee26 Implement new egw messaging (keeps not deliberately dismissed messages) 2020-07-17 14:09:37 +02:00
Ralf Becker
ab1e59c0df register and deregister old JavaScript based app objects with new TypeScript registry to receive observer and push calls 2020-07-15 19:15:54 +02:00
Ralf Becker
808313c121 set grants if given for push 2020-07-13 19:26:05 +02:00
nathangray
ce393e0803 Remove et2_types 2020-05-29 11:21:17 -06:00
nathangray
b5dceda99c Fix js packaging by switching from uglify-es to terser 2020-05-28 11:48:44 -06:00
Ralf Becker
588cd10043 track top EGroupware window in egw object to be used as egw.top instead of window.top, which can throw a security exception 2020-05-18 20:55:57 +02:00
nathangray
4cf185ce7e Avoid JS error by making sure we have a date format 2020-05-15 14:42:31 -06:00
nathangray
242d435252 Fix a few remaining usages of free(), which was removed as part of the TypeScript conversion 2020-05-15 09:50:38 -06:00
Ralf Becker
4dc120a6d2 making video position available and a couple of documentation updates 2020-05-10 14:53:06 +02:00
nathangray
7f99b750b0 Fix missing appname in check
(see 444babdbc8)
2020-04-29 11:28:17 -06:00
nathangray
444babdbc8 Api: Take care of private app.js instances, make sure they're included in iteration.
Iterate over all app.js instances (public & private) using:
for (var app_obj of window.EgwApp) {...}
2020-04-21 15:36:17 -06:00
Ralf Becker
9817d25a47 move who is available via push to push class and backends 2020-04-20 13:07:58 +02:00
Hadi Nategh
be7d045e1d Add requireInteraction option into notification class 2020-04-06 17:24:48 +02:00
nathangray
d24c6f2b7d Avoid error if extra parameter is not set 2020-03-31 10:21:26 -06:00
Ralf Becker
038c1c811c fix not closed spinner for application names with a dot 2020-03-31 13:03:31 +02:00
nathangray
7163acfe1d * Add action to share filemanager folder (readonly) with hidden upload folder 2020-03-24 20:34:04 -06:00
nathangray
34ec346821 Fix favourites (& probably some more inherited stuff) broken by TypeScript conversion
Note that any properties declared in a sub-class aren't generally available until after the super() call is done, i.e. in the super constructor they're undefined.
2020-03-20 11:38:38 -06:00
Hadi Nategh
d6c2a4aa0b Convert tracker app.js to TS 2020-03-09 16:12:49 +01:00
Hadi Nategh
0cc7ce12d0 merge master 2020-03-05 14:45:25 +01:00
Ralf Becker
65294a3e19 fix error on window closing in Chrome 80+
caused by Chrome 80+ no longer allowing to send a synchronious ajax request from beforeunload handler, using sendBeacon (async request with keepalive=true) instead
2020-03-02 10:43:19 +01:00
Hadi Nategh
2cc2f198d4 Some fixes for egw_action and egw_global 2020-02-28 14:41:17 +01:00
nathangray
b03e8d167e Update some parameter types 2020-02-27 11:44:34 -07:00
nathangray
49493a6af8 Convert etemplate2 to typescript 2020-02-24 15:16:40 -07:00
Ralf Becker
20a3dd9fd0 use super.<name>(<arguments>) instead of super.<name>.apply(this, arguments) 2020-02-12 10:37:29 +01:00
Ralf Becker
5f804dd661 use super.<name>(<arguments>) instead of super.<name>.apply(this, arguments) 2020-02-11 17:40:33 +01:00
Ralf Becker
d053a72a17 some fixes on the TS interface of client-side api and TS conversation tool 2020-02-10 10:02:04 +01:00
Ralf Becker
fc48878558 added (generated) TS declarations for egw_action 2020-02-10 10:00:35 +01:00
Ralf Becker
362063e542 added (generated) TS declarations for egw_action 2020-02-09 13:09:11 +01:00
Ralf Becker
8dd03e3d07 some fixes on the TS interface of client-side api and TS conversation tool 2020-02-09 12:27:39 +01:00
Hadi Nategh
d88854b467 Convert et2_widget_file, et2_widget_vfs and fixes couple of definitions in other widgets 2020-02-07 17:41:51 +01:00
Ralf Becker
025b2cc431 moving webserverUrl property to IegwGlobal interface from global egw object 2020-02-04 18:32:58 +01:00
Ralf Becker
8b2f04607e moving webserverUrl property to IegwGlobal interface from global egw object 2020-02-04 18:30:37 +01:00
Ralf Becker
2fc0666762 merged master into typescript 2020-02-03 15:16:51 +00:00
Ralf Becker
e0f38dfb94 migrated infolog app.js to typescript 2020-02-03 16:05:40 +01:00
Ralf Becker
3575f06501 fix JS error from cropper, stalling eTemplate with minified JS 2020-02-02 10:32:12 +01:00
nathangray
4eca12001a Mark some optional parameters 2020-01-31 09:25:11 -07:00
Hadi Nategh
ffae3f2e17 Remove all map files 2020-01-29 17:14:32 +01:00
Hadi Nategh
c8da07b460 Rebase onto Master 2020-01-29 15:31:57 +01:00
nathangray
812f6a0ef7 ts->js maps 2020-01-29 15:12:43 +01:00
Ralf Becker
8b3f9947e6 baseWidget in TS 2020-01-29 15:08:42 +01:00
Ralf Becker
a4ce103d7e WIP with TypeScript 2020-01-29 15:08:42 +01:00
Ralf Becker
9f574b4a38 some egw object interface changes and using it in app.ts base object 2020-01-27 13:43:13 +01:00
Ralf Becker
5b5c2a6cff full TypeScript Interface for client-side API 2020-01-26 13:58:10 +01:00
Ralf Becker
e9c4d3f07e complete push implementation for timesheet incl. ACL check 2020-01-24 13:31:56 +01:00
nathangray
76a5793a0a New push method, with base implementation of delete client side 2020-01-23 11:03:29 -07:00
nathangray
ff50df67d0 Use correct refresh methods for delete so app can handle it 2020-01-23 09:21:41 -07:00
Ralf Becker
6e0936bd98 first take on pushing app-changes to all clients 2020-01-23 11:26:44 +01:00
Ralf Becker
901825bcfa first try with TypeScript: timesheet app.js incl. new egw_app base-class 2020-01-23 09:14:58 +01:00
nathangray
b1c094ca47 ts->js maps 2020-01-22 02:04:45 -07:00
Ralf Becker
630797f127 baseWidget in TS 2020-01-21 12:22:41 +01:00
Ralf Becker
68f9d4c0cf WIP with TypeScript 2020-01-21 10:12:39 +01:00
Ralf Becker
8d5893d515 a couple of small fixes from the conversation to TypeScript 2020-01-15 08:52:49 +01:00
Ralf Becker
55ae9c1c7b first try with TypeScript: timesheet app.js incl. new egw_app base-class 2020-01-15 08:47:33 +01:00
Hadi Nategh
edd8be4355 * All apps favorites: fix issue add favorites popup dialog no longer works after add/remove columns from list 2019-11-13 11:50:30 +01:00
Ralf Becker
bf844b7598 support for new Swoole push server 2019-11-04 09:29:49 +01:00
nathangray
87501bb2a9 * Api: Fix bug where some links opened in the application's main tab instead of popups
Now keeping addressbook & projectmanager opening in main tab
2019-10-17 15:05:55 -06:00
Hadi Nategh
798823ab6e Make sure excluded mime types are type of string before splitting them, avoid js error "Uncaught typeError: ex_mime.split is not a function" 2019-10-02 13:52:48 +02:00
nathangray
2f1dfcc3d8 Calendar - Fix another case of group events not showing properly 2019-09-11 13:29:07 -06:00
nathangray
a49e3a3c15 Api - Add a Share filemanager directory context menu action 2019-08-22 15:18:40 -06:00
nathangray
890cd4e4a4 Api - give error if share path is missing 2019-07-31 10:31:13 -06:00
Ralf Becker
672c407804 egw.(de|en)codePath to correctly encode % and # 2019-03-21 12:46:22 +01:00
Hadi Nategh
2126fca1b4 * Api: Fix mobile template not working with iOS < 10 anymore (iOS < 10 is not compatible with JS ES6) 2019-03-18 16:22:39 +01:00
Hadi Nategh
72cad447b0 Do not check jsonp since we are not using it and it might cause errors by setting dataType to script falsely 2019-02-20 13:24:43 +01:00
Hadi Nategh
b16e93bfe3 Make sure we have a match before using it 2019-02-20 10:41:04 +01:00
nathangray
098fcbf918 Fix (remove) vertical scrollbar on popups with CKEDITOR 2019-01-23 16:01:50 -07:00
Ralf Becker
de27dd3ed3 fix only-send-changed-preferences check for objects
before preference values which are objects have been always send again
trying to fix "storm" of set_preference() calls by mail splitter
2019-01-22 10:10:24 +01:00
Ralf Becker
5531844c0d use correct window of includeJS and alert, also fixed in wrong order included first JS file 2019-01-15 14:34:52 +01:00
nathangray
0d75e05369 Fix accountData failed if a request for a different field is made while waiting for the server 2019-01-11 10:22:29 -07:00
nathangray
01dfdd9b1d Handle javascript as a link registry type target 2019-01-10 14:58:40 -07:00
nathangray
00ea499559 Calendar - open add into a dialog widget 2019-01-09 16:48:04 -07:00
nathangray
6892c4508e Keep a queue of callbacks for the same account and call them all back when we get it 2018-12-19 15:31:44 -07:00
nathangray
e089093b89 User data request has to be synchronous or we can get many identical requests 2018-12-12 16:37:48 -07:00
Ralf Becker
2f1333a116 return and show in browser JSON parsing errors maybe caused by network problems
server sends HTTP status "400 Bad Request" with JSON payload with "error" and "errno" attributes.
error is json_last_error_msg() prefixed with "JSON ".
Not yet implemented is resending the request (max. twice) for JSON parsing errors to try to work around network problems
2018-11-01 12:00:08 +01:00
Hadi Nategh
b39bcc8c36 Remove unintentional commited part from commit a9a303a 2018-10-19 14:59:20 +02:00
nathangray
117b559a5e Entry share changes
- Writable share is now a checkbox
- Add Sharing -> Merge entry into email template, share gets selected options
- Add {{share}} placeholder which creates (by default) read only share
2018-10-11 12:54:17 -06:00
Hadi Nategh
970fb80675 Respect async flag with set false value 2018-10-11 14:14:21 +02:00
Hadi Nategh
c3c887da98 Fix set_account_data turns into an infinite loop because of async ajax call 2018-10-09 17:41:38 +02:00
nathangray
c197d15a28 Explicitly set async to false for user list 2018-10-04 16:09:42 -06:00
nathangray
20956c4966 Explicitly set async to false for user list 2018-10-04 16:01:44 -06:00
Hadi Nategh
cceba01f87 Change default value for async json_request to true 2018-10-04 17:48:13 +02:00
Hadi Nategh
d022e555d5 Fix xhr url in Offline options 2018-10-02 10:12:40 +02:00
Hadi Nategh
54cafd15d7 Implement Online/Offline connection indicator 2018-10-01 15:54:42 +02:00