Commit Graph

3652 Commits

Author SHA1 Message Date
Hadi Nategh
9dfee3f025 Extra padding on buttons is no longer necessary for new jQuery ui version 2021-08-20 10:27:55 +02:00
Hadi Nategh
2125e14b43 Import missing date library 2021-08-20 10:22:15 +02:00
nathan
e0144fcec7 Fix dialog not displaying set value 2021-08-19 15:32:47 -06:00
nathan
381d12dfa2 Get Et2Date loading & formatting value 2021-08-19 15:09:00 -06:00
nathan
b4a13037e2 - Reduce duplication with loadWebComponent() by making it a function & exporting
- Start to implement readonly attribute
2021-08-19 10:54:32 -06:00
nathan
0ea5e2e35f Define the constant only once... 2021-08-19 08:16:36 -06:00
Ralf Becker
6baf07090e implement some missing features from old eTemplate:
- evaluate class set on a grid cell as done for the widget contained (probably more a bug-fix then a feature)
- allow to preset query for link-entry widget by passing an object with a query attribute
- allow to overwrite not only $readonlys[__ALL__] but also widget readonly attribute with a $readonlys value of false
2021-08-19 10:46:34 +02:00
Ralf Becker
1596bec75c get form::name() legacy function working by making used et2_form_name function global, if used 2021-08-19 10:22:40 +02:00
nathan
445f394217 Fix some issues
- Some legacy widgets can not provide their DOMNode right away, but some give errors when we ask at the wrong time.  Now catching those.
- Grid could not set disabled on web components, causing error
- Boxes were trying to work on labels they didn't have, causing error
2021-08-18 17:41:23 -06:00
nathan
9231b32fce Vfs: Fix Stylite/Links/StreamWrapper was not respecting backup parameter 2021-08-18 15:59:54 -06:00
Hadi Nategh
466371fa03 Check element exist before applying to sortable as sortablejs needs an HTMLElement instance 2021-08-18 11:15:38 +02:00
Hadi Nategh
4e7ebc509a Make sure the DOM object is there before using it 2021-08-18 11:02:48 +02:00
Ralf Becker
61cdef588a need to catch the statement in line 1347 2021-08-18 10:48:24 +02:00
Ralf Becker
1462fb517a * PostgreSQL: fix SQL error when accessing eg. InfoLog
Links class trys to delete empty attachment directories and virtual / empty attachment directories have non-integer (hash) id causing an SQL error in PostgreSQL.
2021-08-18 09:18:21 +02:00
nathan
39886a149d * Api: Fix entry list stops scrolling if a row is updated while the tab is not visible 2021-08-17 13:56:52 -06:00
Hadi Nategh
96e960226f Fix volume gets initiated on a wrong object becuase the youtube object is not yet ready 2021-08-17 12:01:53 +02:00
Ralf Becker
94c98718ef update script to remove hashes/non-email-addresses from egw_history_log.share_email 2021-08-17 09:15:25 +02:00
nathan
bea880d9b1 * Api: Fix changes in history log had a hash instead of user if the change was made after a share was opened. 2021-08-16 13:07:17 -06:00
Ralf Becker
6d37e22499 web-components must not be self-closing (no "<et2-button .../>", but "<et2-button ...></et2-button>") 2021-08-16 19:54:58 +02:00
Hadi Nategh
61764809c8 Add getter/setter for video's mute option and fix volume unit 2021-08-16 17:49:47 +02:00
Hadi Nategh
4c1f398322 Fix volume and playbackrate for both youtube and html video 2021-08-16 13:48:10 +02:00
Hadi Nategh
5f4e910d0d Do not activate cropper when the widget is set to readonly 2021-08-16 12:29:56 +02:00
Hadi Nategh
2515d457d5 * Knowledge Base: fix pasting/dragging image into htmlarea editor does not work 2021-08-16 11:52:26 +02:00
Ralf Becker
d060d98fad modify eTemplates server-side to add et2- prefix for widgets converted to web-components
- uses a regular expression to identify the widgets already converted (using XML parsing is slower and more complicated)
- replaces automatic old <menulist...><menupopup type="select-*"/></menulist> with <select type="select-*" .../> to not build support for that into web-component code
- currently only box and button are converted, as converting v/hbox gives a JavaScript error with nextmatch headers (seems a problem with the children)
- caching is currently also disabled, as you would need to clear the filesystem-cache, when you modify the list of supported widgets (browser cache needs to be cleared!)
2021-08-15 14:59:23 +02:00
Ralf Becker
29ab26b731 fix egw.request() which was using jQuery defered.always() which egw_json.sendRequest() no longer returns in favor to a Promise 2021-08-14 08:42:37 +02:00
nathan
4f225054f8 WIP on Date widget
Something's not right with the parser/formatter, they're not getting called.

Times not handled yet
2021-08-13 15:26:18 -06:00
Hadi Nategh
782de6d887 Remove excessive bracket 2021-08-13 12:56:20 +02:00
Hadi Nategh
a7ea5b51bf Implements volume and playback options for video widget (both for html video and youtube) 2021-08-13 12:39:38 +02:00
nathan
35e5d57b2a Merge branch 'master' into web-components 2021-08-12 13:22:51 -06:00
nathan
54e5826fc7 Get the link entry app selection menu working again 2021-08-12 11:21:49 -06:00
nathan
fac1dfb8d4 Merge branch 'master' into web-components 2021-08-12 10:35:46 -06:00
nathan
243d769d7c - Change filenames to match classnames
- Change node import syntax
2021-08-12 10:32:05 -06:00
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
23c27659fc Fix broken styling of sidebox app lists 2021-08-11 16:50:01 +02:00
Hadi Nategh
8743bf64b0 Replace nm column jquery-ui sorting with sortablejs 2021-08-11 16:49:51 +02:00
Hadi Nategh
af2a2a016e Fix broken widget tree actions because of unexpected DOM Element object 2021-08-11 16:49:39 +02:00
Hadi Nategh
572908e300 Get favorites list sorting working with Sortablejs 2021-08-11 16:49:29 +02:00
Hadi Nategh
5777ebeb75 Get et2_grid sortable working with sortablejs 2021-08-11 16:49:16 +02:00
Hadi Nategh
a63416f6d6 Get fw sidebox sortable items working with sortablejs and removes the jquery.sortable 2021-08-11 16:43:16 +02:00
Hadi Nategh
af7b1a0fe0 Remove the tap-and-hold files 2021-08-11 16:43:16 +02:00
Hadi Nategh
7042219529 Remove tab-and-hold jquery plugin and use native touch events to implement something similar 2021-08-11 16:43:16 +02:00
nathan
db7828ad1d Add et2-box (& et2-hbox & et2-vbox) WebComponent
Box can have legacy & webcomponent children.
Used here in infolog edit created & modified row
2021-08-10 15:02:52 -06:00
nathan
6c0aed651f Api: Add some extra parameters to Merge::merge_entries() so overridding classes can still use the parent method, passing in IDs & merge object 2021-08-09 13:44:43 -06:00
Ralf Becker
8f93a7f7c6 * Setup: support uninstalling automatic installed apps (no more reinstalling next update) 2021-08-03 18:53:05 +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
Hadi Nategh
93c390139b Fix error TypeError: Cannot read property 'length' of undefined 2021-07-26 10:10:30 +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
4240f4cf01 Changelog for 21.1.20210723 2021-07-23 08:24:45 +02:00
nathan
5fee9fcafe Make et2-textbox as a WebComponent
Not all attributes are handled yet, but value cycle is working
2021-07-22 14:54:10 -06:00
Ralf Becker
93068dcfcc need to call Vfs\StreamWrapper::init_static() after setting Vfs::$user
Vfs::$user should be protected and moved to Vfs\Base plus a getter and setter method added for public access,
as after setting it in 21.1+, Api\Vfs\StreamWrapper::init_static() need to be called to set the default user context!
2021-07-22 09:08:49 +02:00
nathan
b95f9e7220 Reset after every job 2021-07-20 14:23:21 -06:00
Ralf Becker
df4137baee * Filemanager/VFS: when creating a new file as root eg. via (docker exec) filemanager/cli.php do NOT create files unreadable by webserver 2021-07-20 09:34:59 +02:00
nathan
ad00156113 Merge branch 'master' into web-components 2021-07-19 14:15:52 -06:00
nathan
610d8e1547 Try out Lion as base for button.
Much easier to customize, though not without its issues:
- Lion give us some stuff to handle validation, forms & input that I haven't looked into
- Slightly different mixin structure, I might be missing out on something
- Properties in extending class cause TypeScript error, but still work
2021-07-19 11:57:06 -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
cc27253b7b keep original REQUEST_URI in ORIG_REQUEST_URI when modifying it 2021-07-19 14:15:16 +02:00
Ralf Becker
efb1711eef always sending notification, status and filemanager preferences with user-date to avoid requesting them synchronous 2021-07-19 11:23:35 +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
87694e660c seems to be no need to send a synchronous request 2021-07-16 12:03:29 +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
nathan
723ec70009 Get button to validate server-side 2021-07-15 10:12:47 -06:00
nathan
47e296c947 Get to the point where a button will submit. Yay.
Most other input widgets can build off this base.

It doesn't validate yet because of the server side, but the client side is working.
2021-07-15 10:08:26 -06:00
nathan
1294bc99c6 Some cleanup
- Add but comment out decorators plugin so we know about it, but don't use it yet
- Better instanciation of button image node
- Remove previous mixin experiments
- Start on trying to get click handler parsing & working
2021-07-14 16:11:20 -06:00
nathan
b0322c549a Attribute parsing & basics of WebComponents looking like et2 widgets 2021-07-14 09:49:36 -06:00
Ralf Becker
2f155e0d79 fix popups of apps without app.ts/js wont work as eT2 is not available
it get's included by the app.ts/js otherwise
2021-07-13 21:02:08 +02:00
nathan
73df101e8e Better tests & message for symlink test
no longer checking invalid (nlink = 2) or undefined (stat['url') things to see if it worked
2021-07-13 10:33:50 -06:00
Ralf Becker
6502eaeab8 got symlinks working for filesystem streamwrapper and fix one bug in Vfs with symlinks 2021-07-13 13:59:05 +02:00
Ralf Becker
1563337458 pending translations from our translation server 2021-07-12 08:15:16 +02:00
nathan
e474333bc8 Get stylite gantt extra bits running 2021-07-09 11:56:06 -06:00
nathan
da1e7b9fee Implement symlink for filesystem StreamWrapper with test
Whether it works or not depends on filesystem though.
2021-07-09 09:47:23 -06: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
4f95ebb510 add a missing import 2021-07-09 14:50:15 +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
ff92db4e33 release session in non-json.php requests like lang.php, as it blocks parallel execution 2021-07-09 07:46:18 +02:00
nathan
4627b3b2b1 Remove VfsTest, no longer needed as test has been moved into StreamWrapperBase so it can be run on all StreamWrappers (a63b82d3) 2021-07-08 10:01:33 -06: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
Ralf Becker
d57fe03326 use same method (prefer .min.js over .js) for app.js include in Etemplate and Framework
fixes double include of /mail/js/app.js and /mail/js/app.min.js
2021-07-08 16:58:05 +02:00
Hadi Nategh
2be47ffce2 Fix input field in sharing dialog doesn't get a fullwidth 2021-07-08 16:15:43 +02:00
nathan
a63b82d34e Move symlink test into StreamWrapperBase so it can be run on all StreamWrappers 2021-07-07 15:57:40 -06:00
nathan
35dccf17ae Add missing cleanup of test files 2021-07-07 14:47:04 -06:00
nathan
2e597997e0 Fix wrong permission constant used, resulting in permissions when there shouldn't be 2021-07-07 14:42:10 -06:00
nathan
157926ab00 Better VFS test cleanup 2021-07-07 13:11:44 -06:00
Ralf Becker
a8ae92e1cc add cache-buster to framework bundle 2021-07-07 16:51:31 +02:00
Ralf Becker
b2a48fc942 fix vfs-select dialog destroyed et2 session of popup calling it
dialog set etemplate_exec_id of popup, to be able to submit to server, but must NOT destroy the et2 session when the dialog closes
et2_dialog now calls etemplate2.clear(true, true) to keep app-object AND et2 session
2021-07-07 16:29:04 +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
90f1d9ea37 always show deleted filter and set deleted status in calendar
see #29778
2021-07-07 11:21:45 +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
cf101c8e13 fix not working nm_*_popup actions and others, see #60364 2021-07-07 09:30:29 +02:00
nathan
da3f8d8135 Fix symlink directory problem from 2a64e79 and add a unit test to avoid that in the future 2021-07-06 16:44:53 -06:00
nathangray
0904057714 Solve some calendar issues that were breaking add / edit
- Date widget did not find timepicker.formatTime() when it wanted it
- Faked parent widget was not a good enough fake, added better checking
2021-07-06 11:05:03 -06:00
Ralf Becker
b5015299ee add missing sprintf import 2021-07-06 16:41:23 +02:00
Ralf Becker
5505c9a314 make etemplate2 global, as we need it to check an app uses it and then call methods on it, fixes #60374 2021-07-06 16:00:10 +02:00
Hadi Nategh
81bc236045 Fix vfsSelectUI destroys et2 object after dialog being closed 2021-07-06 15:59:51 +02:00
Hadi Nategh
89695620bc Make sure et2 widgets are there before the container into vfsSelectUI app object 2021-07-06 15:50:49 +02:00
Hadi Nategh
70faf346e4 Fix error egw_keycode_translation_function is not defined 2021-07-06 14:53:56 +02:00
Ralf Becker
75fddd325b if value has already been set, re-set it by it's id(s), fixes #60304 2021-07-06 14:43:13 +02:00
Ralf Becker
51b0888b5d fix diverse calendar errors #60294
thought not sure how this is supposed to work in 21.1, both look like a general problem
2021-07-06 13:06:32 +02:00
Hadi Nategh
cbed97de6d Fix drag and drop actions not working 2021-07-06 12:41:16 +02:00
nathangray
b021767ac1 Make sure nested document actions open in new tab, same as others. 2021-07-05 09:46:00 -06:00
Ralf Becker
1423616e00 remove some dead code and spelling fixes 2021-07-04 08:52:43 +02:00
nathangray
34d601b102 Api: Fix missed change in nested document actions
see 186e03671a
2021-07-02 12:04:38 -06:00
nathangray
c380ad906d Api: Get rid of double super constructor call 2021-07-02 10:17:49 -06:00
Ralf Becker
cfd11cf821 replace eval with Function constructor to quiten rollup warning 2021-07-02 15:27:46 +02:00
nathangray
2a64e79e65 Api: Fix bug where StreamWrappers that mapped onto other StreamWrappers would be parsed earlier than we want, leading to the first StreamWrapper not getting used. 2021-07-02 12:11:54 +02:00
Hadi Nategh
1971fa0e18 Import vfsSelectUI 2021-07-02 11:44:11 +02:00
Hadi Nategh
463d931209 Fix cropper in avatar widget 2021-07-02 10:53:10 +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
b9d47c1511 Replace jQuery.base64 with native JS and remove its library 2021-07-01 10:26:51 +02:00
Hadi Nategh
83e782330d Try to take only quoted_printable to decode and avoid decoding url params as quoted 2021-07-01 10:26:22 +02:00
Ralf Becker
b6fc08c010 Changelog for 21.1.20210629 2021-07-01 10:25:59 +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
3adce4ad58 Get diff widget working 2021-06-30 13:36:59 -06:00
nathangray
e75d3a0777 Get taglist working 2021-06-30 12:45:06 -06:00
Ralf Becker
d7cd90ebe7 fix skipping timestamps, but preferring .min.js over .js
added more apps to rollup.config.js (ones givening errors are commented out)
2021-06-29 15:21:19 +02: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
nathangray
459c021b8c Comment this out while we work on rollup 2021-06-23 16:26:25 -06:00
nathangray
6559a053f3 Merge branch 'master' into new-js-loader to bring it up to date 2021-06-23 15:40:50 -06:00
nathangray
9242673aa1 - A first webcomponent (et2-button)
- Some mixin logic, not used but available
2021-06-23 15:39:58 -06:00
nathangray
186e03671a Change merge download/Collabora to a common generation method, avoiding need to POST.
This allows Kanban to download merge files
2021-06-23 11:20:09 -06:00
nathangray
78a01ced17 Api: Allow Web Components to be added into templates (.xet files)
Current limitations:
- display only, I haven't figured out getting values back yet
- no children in the web components
2021-06-18 14:20:17 -06:00
Hadi Nategh
498cb2994d Add missing compiled js for url widget 2021-06-18 15:29:19 +02:00
nathangray
f64a026898 Etemplate: Only re-set label if the new value is different
Fixes initialization could clear the link text if value was set first
2021-06-18 15:04:00 +02: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
Hadi Nategh
6b57c6477f Revert unintentionally deleted egw_action.d.ts file 2021-06-15 13:47:37 +02:00
Ralf Becker
2388970002 fix blank screen when changing views in admin 2021-06-15 12:50:10 +02:00
Hadi Nategh
a4f21bc804 Fix 404 errors caused by none existing html editor icons 2021-06-15 12:11:43 +02: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
e7a3c031b2 fix class Api\Mail\Config not found 2021-06-15 10:51:48 +02:00
Ralf Becker
cb00de85ce * Mail/Dovecot: allow to disable caching of flags in site config to support Dovecot private seen flags on shared folders 2021-06-15 10:23:11 +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
Hadi Nategh
3c9e33ab46 Add missing import for egw_action_constants 2021-06-14 15:09:53 +02:00
Hadi Nategh
e0341e49e6 Remove duplicated constants from egw_keymanager 2021-06-14 14:57:55 +02:00
Ralf Becker
23844e01df fix wrong import 2021-06-14 14:48:05 +02:00
Hadi Nategh
c73828e4df Add missing egw_action_constants 2021-06-14 14:42:05 +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
Hadi Nategh
b4c4606c22 Move all egw_action constants into egw_action_constants 2021-06-14 13:45:57 +02:00
Ralf Becker
be0af7be68 split implements and instanceOf from ClassWithAttributes in own ClassWithInterfaces and let et2_dataview_view_container inherit from it 2021-06-14 11:47:02 +02:00
Ralf Becker
685a0d3328 handel empty objects like empty array 2021-06-14 10:35:54 +02:00
Ralf Becker
3e5aa5a707 make egw_globalObjectManager available for egw_keymanager 2021-06-12 17:03:22 +02:00