Commit Graph

180 Commits

Author SHA1 Message Date
ralf
29ac5d82a9 remove legacy widgets url-*, colorpicker and tabs 2022-08-07 11:02:54 +02:00
ralf
ba35be1d86 Change Et2Checkbox to behave closer to legacy et2_widget_checkbox and thereby fixing all sorts of errors with it.
Fix vfsSelectUI to be able to select files again with click on the row and only submit selected files.
Also change Et2Widget.iterateOver and legacy et2_widget.interateOver to be called with new web-component classes like Et2Checkbox. Also make Et2Widget matching all widgets by default like et2_widget.
Remove legacy et2_widget_checkbox code.
2022-08-07 10:10:33 +02:00
ralf
239a81e6d9 replace et2_link_add with a stub and no longer include it in etemplate2.ts 2022-08-06 08:38:16 +02:00
ralf
49aba7193d adapt tab-activation on validation error to new tabs and additionally scroll widget into view 2022-08-05 20:33:29 +02:00
nathan
462f5bb55d Fix widget without ID breaks submit 2022-08-03 11:45:45 -06:00
ralf
c3673b1126 ported timestamper to a web-component
also implemented legacy methods activateTab() and setActiveTab() for new tabs widget
2022-08-03 15:48:35 +02:00
Hadi Nategh
67b5c31404 Implements Et2Switch widget extended from shoelace switch 2022-08-03 13:41:08 +02:00
nathan
db143f047a Change tabs to use Shoelace
Includes changes to historylog, since it did some deferred loading & sizing magic based on tab
2022-08-02 10:33:04 -06:00
ralf
125a8abf61 only call widget.resize() if it's a function:
- web-components do not implement it
- et2-textarea / SlTextarea uses resize as a property name
--> we can postpone the decision, if we need an explicit resize handler for our web-components, or using flex is sufficient, for now
2022-07-29 15:29:51 +02:00
nathan
04ac4d6045 Readonly checkbox 2022-07-28 10:28:22 -06:00
Hadi Nategh
e0b4c5f6af Implements Et2Details webcomponent widget 2022-07-28 15:01:17 +02:00
nathan
7df2876d8a New checkbox webcomponent based on SlCheckbox 2022-07-27 15:51:32 -06:00
ralf
879fb84229 automatic focus on first et2-textbox too, not just input 2022-07-27 10:29:31 +02:00
ralf
ac0867ab77 implement et2-searchbox and using it in NM
reorganized preprocessor a bit to fix some not replaced size attributes
also pass on constructor args in all Et2Url widgets

There is still a JS error in new searchbox, causing admin searchbox to not render :(
2022-07-22 20:43:09 +02:00
ralf
888b518e9b implement et2-password web-component replacing passwd legacy widget
enabled Et2InvokerMixin to use an image instead of a textual label
also remove et2_fullWidth CSS class from all web-components in the preprocessor
2022-07-22 15:21:40 +02:00
ralf
b1da5b05a9 remove not used Et2Taglist 2022-07-21 17:22:47 +02:00
nathan
5deef4844d Add Et2LinkAdd widget 2022-07-18 16:34:58 -06:00
nathan
3c96eb9ce6 Fix webcomponents with validation errors did not get tab activated 2022-07-14 11:37:29 -06:00
Hadi Nategh
97019379d8 WIP converting avatar widgets to webcomponent 2022-07-12 17:14:44 +02:00
nathan
ad82ea8faf Et2Select layout improvements
- Added RowLimitedMixin to limit rows
- when multiple=true tags take full width by default, but intelligently resize
- No longer showing search icon
- Move Et2EmailTag add / CRM button to left of remove button
2022-07-11 17:27:17 -06:00
nathan
ed16ce52a2 Change nextmatch headers to use web components 2022-07-07 13:18:42 -06:00
nathan
76a19e86fb Fix selectboxes didn't show server-side validation messages 2022-06-30 08:40:17 -06:00
nathan
d11be10fa1 Et2SelectEmail: Add button on hover to add a new contact with the email
(multiple)
2022-06-24 12:10:10 -06:00
nathan
9b3de5db95 Et2SelectCountry: Use CSS for flag images 2022-06-22 16:13:58 -06:00
nathan
4fe62a0322 Reset dirty after load to avoid unwanted close prompt 2022-06-21 09:22:39 -06:00
nathan
e44ca6183a Promote select category to its own file 2022-06-20 09:35:38 -06:00
nathan
f13bf7b154 Et2SelectThumbnail 2022-06-17 13:07:33 -06:00
nathan
260d8f523a Get category icons & colors working for select category
Also some refactoring of things to where they should be
2022-06-15 16:43:39 -06:00
nathan
531cc473e2 Et2Select: Implement allowFreeEntries & editModeEnabled properties
Also added Et2SelectEmail, which uses them
2022-06-10 10:11:34 -06:00
nathan
b58045c19f Et2LinkTo: Start of link-to
still needs to work for new entries
2022-06-06 13:31:33 -06:00
nathan
9b0e1b9206 Work on LinkEntry 2022-05-31 13:41:39 -06:00
nathan
aa20af559a LinkApp selection 2022-05-27 14:11:35 -06:00
nathan
776ce7202a Et2Favorites 2022-05-18 11:01:27 -06:00
ralf
273fe9a28a diverse fixes loading no longer existing legacy widgets like description 2022-05-13 15:32:36 +02:00
ralf
ac5932240b remove old expose view / blueimp gallery and all widgets which have been using them:
- new web-components are unconditionally replacing them via the preprocessor
- some widgets (eg. et2_description) could not be removed as other legacy widgets are extending them, but they are no longer registered
- as there are many places using et2_createWidget('description', ...), et2_description returns now web-components for no longer existing widgets
2022-05-13 11:59:13 +02:00
nathan
8172f6e72d Et2DropdownButton WIP 2022-05-12 15:22:49 -06:00
nathan
b88267160e WIP on Et2LinkList 2022-05-11 10:35:47 -06:00
nathan
816ab87f13 Et2VfsMime added as WebComponent 2022-05-06 15:07:07 -06:00
nathan
797c615060 Move Et2Box into Layout 2022-05-06 11:57:53 -06:00
nathan
063c772fbb Et2DescriptionExpose, used in Mail app 2022-05-05 13:48:39 -06:00
nathan
efcd5bbe51 Et2ImageExpose 2022-05-04 17:31:42 -06:00
Hadi Nategh
eecad5f70f Set back focus to the first field in form 2022-05-04 14:14:48 +02:00
ralf
ef7c175814 remove jQueryUI DateTime picker and splitter and use them also for eTemplates marked as legacy 2022-04-29 17:05:43 +02:00
nathan
278f75546a Fix submit proceeded even if legacy widget failed validation 2022-04-27 11:56:03 -06:00
nathan
1c42668a97 Change sidebox calendar from jQuery to webcomponent / flatpickr 2022-04-26 15:27:49 -06:00
nathan
ce14c1c9f6 Et2Split: Convert splitter to webcomponent 2022-04-19 09:36:44 -06:00
nathan
2ba299f876 Change buttons that used to be just an image to be just an image
- Remove Et2ButtonImage, it's not needed.  Buttons without labels look the same
- Add Et2Image to take its place
- Change etemplate modifier to use Et2Image for buttononly
- Some styling for mail account placeholder button
2022-04-08 13:03:20 -06:00
nathan
57e231aced New Et2ButtonImage that shows only image
Also doesn't stretch like the others do.
2022-04-05 09:15:08 -06:00
ralf
9e8b291201 calling etemplate2.submit(,,no_validation=true) caused no submit (as invalid is no promise, but null) 2022-04-01 21:28:25 +03:00
nathan
763ed85668 Fix splitter widget did not restore size from preference
Two problems:
1.  Preference was stored as percent which splitter did not like to load directly
2.  Etemplate was triggering the final finish-up, which triggered resize(), which stored the default as preference before the splitter got to its _init_splitter(),
2022-03-30 09:09:33 -06:00
ralf
e7dc51ad14 Revert "Fix splitter widget did not restore size from preference"
This reverts commit e8635be8c1.
2022-03-30 10:21:22 +03:00
nathan
e8635be8c1 Fix splitter widget did not restore size from preference
Two problems:
1.  Preference was stored as percent which splitter did not like to load directly
2.  Etemplate was triggering the final finish-up, which triggered resize(), which stored the default as preference before the splitter got to its _init_splitter(),
2022-03-29 09:17:04 -06:00
nathan
85e247d4d6 Legacy dialog
- Fix load event was not bubbling through to the listener
- Fix value was missing
2022-03-23 09:50:11 -06:00
nathan
2c1f9b2579 WIP on dialog
You can try it with
et2_dialog.show_dialog(null, "This is the message", "Title")
2022-03-14 17:07:25 -06:00
ralf
ebaebf65ca Implement et2-url-* incl. r/o
ToDo: implement allow_path and trailing slash attributes for et2-url
2022-03-10 10:15:59 +02:00
nathan
f7f4053d1a Swap Promise for jQuery.Promise in loadingFinished() & doLoadingFinished()
This lets us add LitElement's updateComplete Promise into the list of things to wait for, and solves the problem of app init code being run before widgets are complete.

https://lit.dev/docs/components/lifecycle/#reactive-update-cycle-completing
2022-03-08 15:11:32 -07:00
ralf
1b74f1f1a7 WIP URL widget for email and phone (not yet styled) 2022-03-08 20:20:06 +02:00
ralf
4f93ceb16e Implement et2-number(_ro) and preprocess <(textbox|float|int(eger)|number) type="float|int(eger)" to it in etemplate.php
.
2022-03-06 20:14:53 +02:00
Hadi Nategh
3112dc1399 WIP of Et2Taglist implementation 2022-03-02 16:28:45 +01:00
ralf
c70886f106 fix invalid can be null and then gives an error 2022-03-01 16:52:50 +02:00
nathan
e048b26235 - Deprecate "needed" attribute in favour of standard "required"
- Fix some required CSS
2022-02-25 10:21:16 -07:00
nathan
d9e95dae87 Get needed attribute working
Will cancel submit, shows validation message
2022-02-24 15:53:40 -07:00
ralf
c83b281aa9 added et2-date-timeonly_ro widget 2022-02-24 19:44:30 +02:00
nathan
7cc9006e19 Add missing et2-date-timeonly widget 2022-02-16 10:43:15 -07:00
nathan
28eb3fdd80 Add Et2DateTimeToday 2022-02-03 14:58:56 -07:00
nathan
f9ba6683be Read-only date-since and date-duration widgets 2022-01-21 13:46:12 -07:00
nathan
96c174d483 Implement select-account_ro as web component 2022-01-19 13:17:46 -07:00
nathan
82277c802b Readonly textbox 2022-01-13 15:31:01 -07:00
Ralf Becker
1f4cb50e74 use $method parameter of Api\Etemplate::exec() plus new et2_process handler as menuaction GET parameter
allows determining the called function on the URL to eg. send it to different FPM pool
(before the menuaction of et2 was always "EGroupware\Api\Etemplate::ajax_process_content")
2022-01-09 16:38:14 +02:00
nathan
f8ab5c521e Selectbox webcomponent 2022-01-04 15:38:10 -07:00
nathan
e1ab343a5d WIP on Et2Description. Shows improvement in nm render speed. 2021-12-17 14:47:19 -07:00
Hadi Nategh
170ac4d6e2 Fix error Cannot read properties of null (reading 'split') 2021-12-16 11:39:43 +01:00
nathan
528134cfac Adapt nextmatch to work with webcomponents + readonly datetime widget 2021-12-14 16:55:57 -07:00
nathan
672ed0aa0e - DateTime widget to handle dates with times
- Time & Date+time parser & formatter functions
- Date widget does not return a time
2021-11-03 09:05:16 -06:00
nathan
02dce82010 Merge branch 'master' into web-components 2021-10-06 14:02:22 -06:00
Ralf Becker
db83cc437c refactor client-side form is not valid/submittable check of submit method into an own method isInvalid() 2021-09-30 09:26:36 +02:00
nathan
25773a929f Merge remote-tracking branch 'origin/master' into web-components 2021-09-23 10:22:18 -06:00
nathan
29bd739955 W.I.P on collabora placeholder insert 2021-09-20 15:34:55 -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
nathan
9cee681b94 Bring web-component work into master branch 2021-09-02 10:52:10 -06:00
Hadi Nategh
53f156a66b WIP implementing colorpicker widget 2021-09-02 16:47:49 +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
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
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
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
nathan
243d769d7c - Change filenames to match classnames
- Change node import syntax
2021-08-12 10:32:05 -06: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
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
nathan
b0322c549a Attribute parsing & basics of WebComponents looking like et2 widgets 2021-07-14 09:49:36 -06: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
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
89695620bc Make sure et2 widgets are there before the container into vfsSelectUI app object 2021-07-06 15:50:49 +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
1971fa0e18 Import vfsSelectUI 2021-07-02 11:44:11 +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
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
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
9242673aa1 - A first webcomponent (et2-button)
- Some mixin logic, not used but available
2021-06-23 15:39:58 -06: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