Hadi Nategh
d07a7ab194
WIP of replacing bower-asset packages:
...
- Get jquery-ui and touch event plugin working (although still modular import is not possible becuase of a wierd issue with jquery-ui tooltip plugin)
- Import timepicker-addon plugin as npm package
- Update composer.lock file
2021-08-12 14:51:38 +02:00
Ralf Becker
72699fad30
fix ESM module import (no currly brackets) as suggested by Guy Bedford
2021-08-11 19:28:01 +02:00
Hadi Nategh
572908e300
Get favorites list sorting working with Sortablejs
2021-08-11 16:49:29 +02:00
Ralf Becker
5f7bafd030
allow to explicit register callbacks for the broadcasted push messages
...
egw.registerPush(Function)
The callback should have a bound context, if it requires one!
2021-07-30 15:21:58 +02:00
nathan
30d835fa39
- Get label "for" attribute working when target is a WebComponent
...
- Remove requirement that tooltip target be jQuery, get tooltips working on WebComponents
2021-07-23 10:18:45 -06:00
Ralf Becker
0a1e784f2e
egw.getCache(name) function to get a cache-object shared between all EGroupware windows and popups
...
used to share server-side generated options for et2_selectbox
also removed nextmatch specific code from et2_selectbox which seems no longer necessary
2021-07-19 17:02:37 +02:00
Ralf Becker
3a618937a9
do NOT check Content-Type header as it's sometimes not set to application/json
...
parsing JSON will error out, if payload is no JSON anyway
happens with mark-as-spam and SpamTitan
2021-07-19 10:24:58 +02:00
Ralf Becker
59ac3f4bda
always name generated file app.min.js so client-side can load it without knowing source is .ts or .js
...
--> fixes client-side initiated load errors
2021-07-19 08:31:06 +02:00
Ralf Becker
ce0a513187
egw.preference(name, app, true) returns now a promise to query preference async
...
changed notifications to query preference async together with lang-files
fixed error-handling in new egw.json()
2021-07-16 14:50:06 +02:00
Ralf Becker
50b8839609
fix not working InfoLog index: synchronous request must return fulfilled promise
2021-07-16 11:49:53 +02:00
Ralf Becker
b780c7ebd8
replace jQuery.ajax with fetch (or XMLHttpRequest for synchronous requests)
2021-07-16 08:47:22 +02:00
Ralf Becker
a5ad691757
deprecated egw.includeJS() in favor of es6 import statement
...
with egw composition happening in main window the used import statement happens in that context and NOT in the window (eg. popup or iframe) this module is instantiated for!
2021-07-09 17:27:22 +02:00
Ralf Becker
65502ace6e
re-added daily cache-buster for app.js and removed explicit timepicker include causing a double include
...
(we still sometimes get a jQuery.datepicker is not defined, but it seems a timing issue and is NOT fixed by including it twice!)
2021-07-09 10:07:31 +02:00
Ralf Becker
edacfc12cb
remove (unnecessary) double egw.min.js import
2021-07-09 08:15:17 +02:00
Ralf Becker
5b8923f548
replace include of egw.js with egw_core.js, which provides the egw.extend
...
fixes the stray egw.js include
2021-07-08 17:04:48 +02:00
Hadi Nategh
052f5f23cc
Remove framework object from import statement which would override the actual object
2021-07-07 12:31:11 +02:00
Ralf Becker
e8da7caa64
fix after rollup build popups need extra reload
...
caused by no longer necessary import of etemplate2 in egw.js, as Promise works and etemplate2 is global
2021-07-07 10:32:06 +02:00
Ralf Becker
cfd11cf821
replace eval with Function constructor to quiten rollup warning
2021-07-02 15:27:46 +02:00
Ralf Becker
b88716c8b6
legacy load jQueryUI as tooltip has wired context problems if loaded as module
2021-07-02 08:52:18 +02:00
Ralf Becker
68155251fa
fixing a couple of jQuery plugin includes
...
thought jQueryUI-tooltip is still broken and we either need to legacy-load jQuery(UI) or fix the tooltip
2021-07-01 16:33:15 +02:00
Ralf Becker
8c7722c8b0
1. loading dhmtlx(tree|menu) again via script tag
...
2. fixed not loaded app.js in egw_json by using import direct and not includeJS (and therefore removed additional include in et2_load)
3. adding cache-buster for egw.js and app.js endpoints to force reloads (not adding them for anything else, as it interferes with rollup
2021-07-01 14:36:51 +02:00
Hadi Nategh
e5d0e5def0
Avoid triggering initial resize if not necessary
2021-07-01 10:22:42 +02:00
Ralf Becker
05405b955a
remove generated .js files from git
2021-07-01 08:38:08 +02:00
nathangray
154946f39e
Get news_admin loading with rollup
2021-06-30 14:21:58 -06:00
nathangray
3add958afa
The results of Guy Bedford's help
...
Egroupware will load into addressbook & show rows
Most base files should be bundled server-side & included
rollup.config.js controls the process
Still needs work:
- consider /dist directory for best-practice
- cleanup
- other built-in apps
- EPL / external apps need Guy's multi-stage work
2021-06-25 14:49:24 -06:00
Ralf Becker
45758aaada
we must not make json_request object global as it interferes with registered plugins from different windows
...
Example was tracker site config opened in an iframe, then stopped further et2_load responses to the main window
because it still used window object from the iframe and therefore could not find the node
2021-06-18 11:09:53 +02:00
nathangray
5a209a00f0
Avoid infinite loop if loading JS file fails
2021-06-17 14:17:58 -06:00
Ralf Becker
af3193480c
fix not working applyFunc if app.js was not yet loaded (missing return of the Promise)
2021-06-15 11:51:10 +02:00
Ralf Becker
8432cca3ea
show (caught) exceptions during import now as error for easier spotting
...
console.error instead of console.log
2021-06-14 15:22:16 +02:00
Ralf Becker
829defa0c1
also import old jsapi with rest of egw object
2021-06-14 15:12:52 +02:00
Ralf Becker
1035ff31ec
fix async loading caused et2 widgets calling api before loaded
...
using a strict order now:
1. legacy stuff like jquery and dhtmlx
2. client-side api / egw-object
3. et2 and rest
2021-06-14 14:16:07 +02:00
Ralf Becker
685a0d3328
handel empty objects like empty array
2021-06-14 10:35:54 +02:00
Ralf Becker
ee508c50b9
filter out legacy JS code from importmap and sort it
...
also only add extension-less includes for .ts files (was accidentally commented out) and fix some .js imports without extension
2021-06-12 11:44:28 +02:00
nathangray
2c2563eccf
Fix PUSH new entries did not show if filter had multiple values
...
(cherry picked from commit 0caabaf516
)
2021-06-11 13:17:27 -06:00
Ralf Becker
f503f7139a
EgwApp object need to be global / assigned to window.EgwApp
...
as that's how we iterate through all EgwApp instances for observer and push
2021-06-11 15:21:18 +02:00
Ralf Becker
78e30f1a27
load egw_ready.js again
2021-06-11 15:05:44 +02:00
Ralf Becker
89967336e2
removed app_base.js from egw.js requirement to not pull in etemplate, but had to move app to egw.js too
2021-06-11 13:48:09 +02:00
Ralf Becker
771d6c727f
got mail app.js incl. jsapi/app_base.js working
...
plus marking et2 methods returning promisses as async and removing cache-buster from includeJS calls in egw_action_common.js as it causes double loads
2021-06-11 10:11:13 +02:00
Ralf Becker
1f4ba0156a
remove (unused) etemplate2 import causing login page to constantly reload
2021-06-11 09:11:28 +02:00
Ralf Becker
e18832e110
defer calls to app.* after et2_load is finished
...
changing et2_load egw_json plugin to return a promise for that
2021-06-11 09:05:57 +02:00
Ralf Becker
5298336886
include jquery and other legacy js files via script tag
2021-06-10 11:38:54 +02:00
Ralf Becker
38cb855017
fixing a couple more imports to get addressbook list show up
2021-06-09 11:11:34 +02:00
Ralf Becker
027c087a06
remove egw_app dependency and only import et2, if there is an eTemplate on the page
...
stops login-page from loading eT2 stuff
2021-06-09 10:13:51 +02:00
Ralf Becker
bfea641321
fix async loading caused app.js not being loaded before et2.load() tried to instantiate it
2021-06-08 17:13:30 +02:00
Ralf Becker
8fa2bb466b
fixed includeJS causing jQuery to be included twice and breaking plugins
2021-06-08 15:11:37 +02:00
Ralf Becker
304dbb95ab
got empty nextmatch in timesheet working
2021-06-08 14:11:59 +02:00
Ralf Becker
f91bca83e1
got et2 mostly working: timesheet.edit renders
2021-06-07 17:33:53 +02:00
Ralf Becker
592b7fb97d
replace LAB.js with native es5 loading
2021-06-05 20:39:39 +02:00
Ralf Becker
069cf4c3ac
fix security exception if opener is from a different security context eg. LTI opening in a new window
2021-05-20 16:44:35 +02:00
Ralf Becker
450febb623
fix security exeception if opener is from a different security context eg. LTI opening in a new window
2021-05-20 16:35:54 +02:00
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