Commit Graph

3741 Commits

Author SHA1 Message Date
nathan
6884902d93 W.I.P on collabora placeholder insert
- better button styling
- make entry select app = selected app
2021-09-20 16:28:20 -06:00
nathan
29bd739955 W.I.P on collabora placeholder insert 2021-09-20 15:34:55 -06:00
Ralf Becker
13198e12c9 Use EGW_(USER|PASSWORD) from doc/phpunix.xml instead of hardcoded demo/guest 2021-09-20 18:52:25 +02:00
Ralf Becker
82c8ed51d2 Contacts REST API:
- implement missing PUT/POST of distribution list / CardGroups
- implement changes from next JsContact draft:
  + string plus extra localizations attribute instead of localizedString object
  + use "<domain>:<name>" for vendor attributes
- add/parse urn:uuid: prefix if UID is a UUID
2021-09-20 16:01:22 +02:00
Ralf Becker
0a75520a01 * Filemanager/Sharing: create different share-token for different recipients (before recipients where added to the token)
- allows to individually remove the token, otherwise new token for the other recipients need to be redistributed
- sending one email to multiple recipients still creates a single share-token for all the recipients (send multiple mails if that's not desired)
2021-09-20 13:27:31 +02:00
Ralf Becker
e9998161a5 finished REST API for contacts modulo docu and bugs ;)
- JsCardGroup now used for distribution lists
- responses are not in "responses" attribute (no longer in root of object)
- fix sometimes empty / different members between PROPFIND/REPORT/JSON-GET and GET of group (caused by wrongly implemented limit to given AB)
- JSON pretty-print only if requested by Accept: application/pretty+json
- fix invalid JSON for errors (caused by opening {"responses": already sent
2021-09-19 11:09:44 +02:00
Ralf Becker
3a88aedce1 fix PHP Deprecated: stripos(): Non-string needles will be interpreted as strings in the future 2021-09-18 09:44:46 +02:00
nathan
fa5dcc2a3c Fix uneeded remove & re-add of WebComponent widgets to legacy parent
This fixes the incorrect vertical ordering of the preferences dialog (was tabs, header, footer )
2021-09-17 13:12:24 -06:00
Ralf Becker
7617aae9d0 got POST, PUT and DELETE request to add, update and delete contacts working
added JSON exception handler with nicer JsCalendar parse errors
2021-09-17 20:15:36 +02:00
nathan
23f0a95447 Limit container width to 100%
Fixes site configuration pages go too wide
2021-09-17 09:24:12 -06:00
nathan
d23b55fe6d Change how boxes justify contents so buttons group on the left again.
Children without a max-width should still expand to share space.
2021-09-17 09:16:58 -06:00
Ralf Becker
8793f7895b fix excess separator, if not 2nd street-line 2021-09-17 11:58:39 +02:00
nathan
59ee0b57f2 Get translations working in labels & statustext 2021-09-16 14:56:13 -06:00
nathan
e279945953 Try removing width:100% from box to help with sizing nested boxes
This should fix the problem with timesheet.edit delete button being pushed off to the right
2021-09-16 13:49:48 -06:00
nathan
abd2e3804a - Fix default button image was not working
- Fix disabled="false" in template sort-of disabled buttons instead of them working normally

This fixes CRM view close button
2021-09-16 13:37:59 -06:00
Ralf Becker
0768f5fadf WIP REST Api for contacts 2021-09-16 20:53:43 +02:00
nathan
d6ad0d986c Changes from what we learned - using slots & not overriding render() to get all that Lion has 2021-09-16 11:03:46 -06:00
Hadi Nategh
029f75b9bc Add getValue, setValue, clear button handler and styling for colorpicker 2021-09-16 11:38:09 +02:00
Ralf Becker
4063f9fcdb modify <buttononly.../> --> <et2-button type="buttononly"...></et2-button>
also adding a class .et2_buttonFitContent and using it for filemanager.admin
2021-09-16 09:03:15 +02:00
nathan
44fcd07f6b Hopefully fix some out-of-order children when the first child of a box is a legacy widget 2021-09-15 16:29:17 -06:00
nathan
d68b8fdfe4 Fix disabled property/attribute was not getting reflected down to node, and Et2Box was missing the disabled style 2021-09-15 14:59:31 -06:00
nathan
23f8bc24c2 Fix some button stuff
- Submit / Cancel action was not being called correctly, so cancel buttons were not skipping change check
- Implement default image & class based on ID
2021-09-15 11:08:44 -06:00
Ralf Becker
38e2167166 WIP REST API for contacts using JsContacts draft 2021-09-15 18:45:45 +02:00
nathan
d5652c2f7e Bind app.appname.function context so widget can't lose it 2021-09-15 09:23:15 -06:00
nathan
decd64e7c3 Getter/Setter shenanigans to
- get widget's DOM ID to have the instance template as prefix
 - keep widget.id as what's in the template, matching legacy
 - widget.dom_id gives the DOM ID, matching legacy
2021-09-14 16:01:22 -06:00
nathan
277f465c50 Fix onclick to keep originally bound click handler context.
Fixes app.appname.func callbacks had widget as context
2021-09-14 13:23:17 -06:00
nathan
442de20d90 Add missing set_disabled() method 2021-09-14 11:50:10 -06:00
nathan
3c7da204c5 Fix button icons so they don't get space when not there 2021-09-14 11:43:43 -06:00
nathan
6883760d6f Get Et2Textarea to automatically fill their available space if no width or height attribute is set 2021-09-14 11:12:33 -06:00
nathan
373cf6590d Merge remote-tracking branch 'origin/master' into web-components 2021-09-13 14:56:08 -06:00
nathan
dd47af5d09 Remove debug 2021-09-13 14:52:28 -06:00
nathan
76ad419420 Fix index templates had nextmatch row nodes below the nextmatch 2021-09-13 14:41:36 -06:00
nathan
6a70efcc34 Fix left/right align CSS to work with out-of-order children 2021-09-13 11:57:23 -06:00
nathan
b7e34ed779 Fix child order when children are a mix of WebComponent & legacy widgets 2021-09-13 11:26:29 -06:00
Ralf Becker
be3514c36f preferring get_rrows over get_rows to fix SQL error in timesheet merge 2021-09-13 18:02:39 +02:00
Ralf Becker
621d69f921 missing files from filemanager mount GUI 2021-09-13 17:41:21 +02:00
Ralf Becker
4727340f1d * Filemanager: added user-interface to mount WebDAV or SMB shares 2021-09-13 16:16:36 +02:00
nathan
6abb239705 Avoid error if widget does not have transformAttributes method
This might be an issue with not properly implemented DetachedDOM interface
2021-09-09 13:43:16 -06:00
Hadi Nategh
722172fff2 Adjust toolbar's triangle icon styling 2021-09-09 15:46:52 +02:00
Hadi Nategh
5dbba31285 Fix toolbar list header taking a while to get opened 2021-09-08 12:07:47 +02:00
Hadi Nategh
3fc0823f38 Adjust background and height for toolbar's header_list 3dots menu 2021-09-07 16:56:50 +02:00
Hadi Nategh
91d74767fe Add an option to configure toolbar's list header style 2021-09-07 16:30:53 +02:00
Hadi Nategh
78d7f20ed8 Disable default background for et2_toolbar 2021-09-06 15:40:35 +02:00
nathan
6fe2ec6c65 Fix readonly was not hiding buttons
in Lion, they already have functionality on readOnly
2021-09-03 14:53:51 -06:00
nathan
347ea25131 Fix webcomponent attributes (class) were causing errors in nextmatch instead of being checked for variables 2021-09-03 14:45:45 -06:00
nathan
968a2d03bb Fix widget class in .xet file was not showing up on webcomponent element 2021-09-03 14:44:52 -06:00
nathan
4cafdeb359 Fix webcomponent children of webcomponents did not get properly added when cloned.
Fixes infolog description was missing
2021-09-03 13:08:49 -06:00
nathan
dccf43f3e3 Fix clone & child handling
This gets webcomponents (Et2Box) working in nextmatch
2021-09-03 11:20:53 -06:00
nathan
36df64085f * Api: Fix some merge files were opened in browser instead of downloaded 2021-09-03 09:33:32 -06:00
Ralf Becker
582793d52b Revert "Bring web-component work into master branch"
To many things are not working :(
- addressbook, infolog, even timesheet index lacks at least r/o textbox and problably other widgets
- smallPART (with many extra widgets) is completly unusable
- *box widget seems not to skip empty boxes
--> we need more testing and progress, before we can merge that

This reverts commit 9cee681b94.
2021-09-03 11:28:22 +02:00
Ralf Becker
ef1239b017 fix URL if custom template from VFS is used 2021-09-03 11:02:06 +02:00
Ralf Becker
a566599b7f * PostgreSQL/Addressbook/All Apps: fix SQL error in history tab if there are attachments 2021-09-03 09:48:47 +02:00
nathan
3619bd6ae1 Fix child widget handling to handle both legacy and webcomponent children the same, as much as possible 2021-09-02 13:40:26 -06:00
nathan
9cee681b94 Bring web-component work into master branch 2021-09-02 10:52:10 -06:00
nathan
b52000ceb7 Merge branch 'master' into web-components 2021-09-02 10:38:34 -06:00
nathan
25ba3e477a - Set a max-width on buttons so we can let them flex
- Fix missing button label
2021-09-02 09:43:00 -06:00
nathan
637bd9fe5b Style changes on Et2Box, now supporting the align [left|right] property. 2021-09-02 09:39:43 -06:00
Ralf Becker
86c92dcdf6 allow pushing to multiple users in one request 2021-09-02 09:39:43 -06:00
Hadi Nategh
53f156a66b WIP implementing colorpicker widget 2021-09-02 16:47:49 +02:00
Ralf Becker
e500190728 * Addressbook/PostgreSQL: fix SQL error deleting a contact finally 2021-09-01 09:33:54 +02:00
Ralf Becker
c830bdd923 allow pushing to multiple users in one request 2021-08-31 17:42:28 +02:00
nathan
61da5c544a Merge branch 'master' into web-components 2021-08-27 11:40:22 -06:00
nathan
8a2b717c51 Fix some type issues to make everything play more nicely together
(Not complaining about things from parent classes being missing, mostly)
2021-08-27 11:21:40 -06:00
Ralf Becker
fb69cf39fd replace all "(../)+node_modules/" with bare specifiers 2021-08-27 08:13:36 +02:00
Guy Bedford
2526b0460e fix: node_modules resolutions 2021-08-27 07:58:30 +02:00
nathan
4218b132f9 - Sort out some type issues to reduce warnings/duplication
- Some tests for textbox
2021-08-26 12:59:13 -06:00
Ralf Becker
44ae9650f8 legacy-load old javascript from etemplate(1) and phpbrain, to fix eg. DB-Tools 2021-08-26 17:51:45 +02:00
nathan
181b1c03ae Fix imports to work with rollup 2021-08-26 09:20:41 -06:00
Hadi Nategh
3adec01e58 Fix youtube video starts to play automatically after being seeked to a time 2021-08-26 12:11:24 +02:00
nathan
2e712c47bc Move the rest of the WebComponents into their own directory to get ready for tests 2021-08-25 15:35:06 -06:00
nathan
584d6bf51d Add some button tests 2021-08-25 15:24:27 -06:00
Nathan Gray
3e0f302bb5
Remove unneeded import 2021-08-25 11:34:10 -06:00
Nathan Gray
96c8e61127
Remove unneeded import 2021-08-25 11:33:24 -06:00
nathan
ef3848fd3c - Fix including everything just for a unit test
- Start of some tests for Et2Button
2021-08-25 11:32:15 -06:00
nathan
d656eb0e69 Javascript unit testing
Runs over all files in api/js/etemplate/<widget>/test and <app>/js/test folders

Run from the commandline with: npm jstest
Can also run & watch for changed files, check package.json for scripts.
2021-08-24 14:52:09 -06:00
nathan
d127cae5c6 Add get_value() to match legacy 2021-08-24 14:44:45 -06:00
nathan
538e483499 Merge branch 'master' into web-components 2021-08-23 15:41:27 -06:00
nathan
b393375823 Fix readonly property to match parent 2021-08-23 15:26:00 -06:00
nathan
8f784cd7b3 Remove setting defaults to undefined. It doesn't help the sizing issue, and it causes problems in the parent's size calculations 2021-08-23 13:09:45 -06:00
nathan
e3e3def64c Use Lion's SlotMixin to handle button icon instead of managing it ourselves 2021-08-23 11:49:17 -06:00
nathan
17b4278ca2 Implement iterateOver for children 2021-08-23 10:21:51 -06:00
Ralf Becker
0203ce5a1f also augmenting Promise returned from egw.request() with an abort method and using that in link-widget 2021-08-23 09:37:18 +02:00
Ralf Becker
6c641f824b fix missing abort method for link-widget
also remove jQuery.proxy
2021-08-22 11:55:29 +02:00
Ralf Becker
70e838b267 modify <textbox multiline="true".../> --> <et2-textarea...></et2-textarea> 2021-08-21 09:55:21 +02:00
nathan
64860e12f1 Better layout for textarea, but it's still not filling 2021-08-20 16:11:59 -06:00
nathan
e34ca22499 Split textarea off from textbox & start implementing
Splitting the two made things a lot simpler to deal with
2021-08-20 15:52:22 -06:00
nathan
0c6cd22bcd Remove debugger 2021-08-20 15:51:14 -06:00
nathan
f00e4fb708 - onclick is fine being an attribute
- Avoid error when calling loadingFinished on a webComponent and the parent does not give/have a DOM node
2021-08-20 10:37:41 -06:00
nathan
e6ecdd1b25 Fix onclick context was bound to the widget class instead of the widget instance
This caused any onclicks that used "widget" variable to fail.
2021-08-20 10:23:39 -06:00
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