Commit Graph

2344 Commits

Author SHA1 Message Date
nathan
f54c7f40bb Improve holidays() return documentation 2022-04-29 14:37:52 -06:00
nathan
b44f4ea30d Move holidays to its own file, show holidays in all date selection calendars 2022-04-29 14:37:52 -06:00
nathan
de2dade286 Et2SelectReadonly: Make sure we're dealing with string value 2022-04-29 14:37:52 -06:00
ralf
baf07a4a2c only load localization, if we have one 2022-04-29 17:40:43 +02:00
nathan
e5f238584e Et2Date: Avoid error localizing English 2022-04-29 09:14:51 -06: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
Hadi Nategh
c707af32b6 Add hideOnEscape and noCloseButton options into ET2Dialog 2022-04-29 14:28:43 +02:00
nathan
63b2755dbf Et2Date: Add localization 2022-04-28 15:46:39 -06:00
Hadi Nategh
36f41a9470 Handle appendTo attribute used in legacy dialog properly 2022-04-28 18:00:37 +02:00
nathan
278f75546a Fix submit proceeded even if legacy widget failed validation 2022-04-27 11:56:03 -06:00
ralf
c62b305b4a return a Promise from egw.accountData and deprecated, but still support, the use of a callback
egw.accounts can be called with a second parameter async=true to query accounts async and return a Promise
2022-04-27 17:33:07 +02:00
nathan
1c42668a97 Change sidebox calendar from jQuery to webcomponent / flatpickr 2022-04-26 15:27:49 -06:00
nathan
0017b78b53 Et2Date: Add support for inline dates & passing a format to parseDate 2022-04-26 15:24:58 -06:00
Hadi Nategh
fcf195cf47 Fix toolbar menulist doesn't get closed after clicking away from it 2022-04-26 14:53:01 +02:00
Hadi Nategh
a835d5bc6e WIP replacing jQuery-ui: fix et2_toolbar styling with new details tag 2022-04-26 11:18:43 +02:00
nathan
7d86272b28 CSS / Layout cleanup
- Fix select with tags=true causes hidden WebComponents to display

Chosen wants to do sizing calculations which wasn't working properly on w.c.
2022-04-25 10:46:51 -06:00
Hadi Nategh
ca794817eb WIP replacing jQuery-ui:
- Replace accordion with html details
2022-04-25 17:24:29 +02:00
nathan
65c683b9a2 Change styling on validation messages 2022-04-25 08:47:12 -06:00
nathan
aafbc58cdd Validation message styles
- Changed to absolute position to avoid reflow
- "Better" style
2022-04-22 16:07:57 -06:00
nathan
4f17302bb1 CSS / Layout cleanup - better autosize
- More consistent sizing/position for invoker
2022-04-22 15:22:31 -06:00
nathan
ec8b32c01d CSS / Layout cleanup - better autosize
- let things inside box shrink, actual widget can decide minimums
- Slotted inputs take up full width by default
- More consistent sizing/position for invoker
2022-04-22 15:21:46 -06:00
nathan
f8f04071be CSS / Layout cleanup
- Remove margin from input,button,select
- Fix some spacing issues
- Switch selects from display:inline-block to display:block so they take up all parent's space
- Let background (required) color show through select tag
- Some layout tweaks on mail account template
2022-04-22 13:07:22 -06:00
nathan
6feb9f468a Handle missing nextmatch controller when setting up auto-refresh by trying again later.
(Missing controller caused by new template loading)
2022-04-22 10:52:16 -06:00
nathan
f18dd19536 Et2Split: Make bar darker on hover 2022-04-22 10:46:41 -06:00
nathan
166db3f4d2 Et2Description: Fix extra space while preserving line breaks 2022-04-21 10:41:30 -06:00
nathan
19ae591bdf Et2Split: Add a background color to the splitter bar 2022-04-21 09:09:59 -06:00
nathan
416136dc24 Et2Description: Fix missing styles from extending classes (Et2Url) while also keeping decrypt on hover working 2022-04-20 16:23:53 -06:00
nathan
234684061d Et2Split: Bugfixes
- better handling of nested dynheight
- handling orientation property
- avoid resizing when not visible
2022-04-20 14:15:49 -06:00
nathan
94f843cd50 Et2Widget: Add modifications in when transforming attributes 2022-04-20 14:09:45 -06:00
nathan
ce14c1c9f6 Et2Split: Convert splitter to webcomponent 2022-04-19 09:36:44 -06:00
nathan
44c8b2f372 Et2Widget: More complete handling of child object styles property when it is missing 2022-04-19 09:31:10 -06:00
nathan
18f6d1ee0b Et2Image: Fix "TypeError: this._imageTemplate is not a function"
I'm not sure how that happened.  Autocorrect?
2022-04-14 08:50:34 -06:00
nathan
748e2ee70e Et2Image: Use slotted image so most CSS still works 2022-04-13 10:37:55 -06:00
nathan
0d6d18e3fa Et2Image: Show as clickable if image has href OR onclick 2022-04-13 08:34:24 -06:00
nathan
0f362f9717 Put Et2Description content into light DOM to fix decrypt on hover 2022-04-12 16:28:36 -06:00
nathan
319bd51f80 Et2Image bugfixes
- No src or default_src gives nothing, not missing image
- Fix etemplate.php parser so buttons that get converted to images still submit
2022-04-12 10:00:43 -06:00
nathan
e3be42721e Fix Et2Image did not double-transform src for as legacy image did
eg:
if $content[0][type] = "group"
${row}[type] => "0[type]" (single transform)
0[type] => "group" (double transform)

Also, fix type from addressbook list to not need double-transform
2022-04-11 15:03:24 -06:00
nathan
6ed888a80e Fix missing Et2Image label 2022-04-11 13:38:24 -06:00
nathan
49d40c18e8 Set nextmatch as parent so newly cloned webcomponents in nm row have it before we start setting properties.
Fixes egw.image() not having correct app.
2022-04-11 11:21:39 -06:00
nathan
77a11cb5fe Fix image src not getting set 2022-04-08 14:03:29 -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
70c5cedec7 Better styles for disabled buttons 2022-04-07 16:45:24 -06:00
nathan
3f86e98257 Deal with et2-button-image showing label 2022-04-07 16:24:45 -06:00
nathan
911a2970b0 Et2Dialog: Turn on modal now that style issue is fixed 2022-04-06 15:13:51 -06:00
nathan
d1b5c796dd Expand super.styles 2022-04-06 15:12:39 -06:00
nathan
22ae7fbf89 Use Et2Button.noSubmit instead of Et2Button.doSubmit 2022-04-06 15:08:18 -06:00
nathan
54ea13bfa8 Et2Widget: Fix the missing style property
... by not overriding it
2022-04-06 15:06:25 -06:00
nathan
3c28d4b9a9 Et2Button: change doSubmit (default false) to noSubmit (default true) because of nextmatch complications with boolean properties 2022-04-06 14:48:57 -06:00
nathan
e68e125a0a Add accesskey property 2022-04-05 10:09:49 -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
Hadi Nategh
8b147bc285 Fix removeSessionItem not working 2022-04-05 10:24:06 +02:00
nathan
a763b84be4 Et2Button properties hideOnReadonly, noValidation
Added hideOnReadonly, default false.  Disabled/readonly buttons are now visible but disabled, unless you set hideOnReadonly="false" to get previous behaviour.

Added noValidation, default false.  It's just passed to etemplate2.submit() as before
2022-04-04 16:24:01 -06:00
nathan
17834f1be8 Fix nextmatch changing value back before it could be submitted 2022-04-01 14:52:40 -06:00
nathan
a83f9a1ec9 Get tests passing again
- Dates have their input as slotted, not internal
- Selects have .select_options, not .get_select_options()
- Remove this.egw().lang() use from Et2InvokerMixin._invokerTemplate()
2022-04-01 12:52:47 -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
ralf
b2a85e68b8 fix vfs-path widget to correctly deal with smallPART paths (hierarchical structure inside entry directory) 2022-04-01 21:00:45 +03:00
nathan
0c8824c496 Fix addressbook contact type filter was sometimes 'D' after being initialized to 'n'
When nextmatch moved the template in the DOM, we were re-adding already existing options which re-set the value.
2022-04-01 11:12:19 -06:00
nathan
9cd746f0b4 Fix missing nm filters 2022-03-31 08:46:36 -06:00
nathan
6120d820aa Change to Et2Dialog
- History diff
- Fix some bugs in placeholder widget
- Change load listener target, the dialog content node might have been moved out before the event gets triggered
2022-03-30 15:11:15 -06:00
nathan
bfdb53b1cf Change over some more dialogs 2022-03-30 13:24:52 -06: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
nathan
632ab571db Fix nextmatch webcomponent children stalled etemplate load, preventing et2_init() from being called. 2022-03-30 08:30:25 -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
c12d4cebfb Et2DateDuration: Enforce the order of display to be greatest to least
For example hours:days is not allowed anymore, auto-corrected to days:hours
2022-03-29 11:00:59 -06: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
13d1289910 Dialog / button fixes
- Get dialog contents visible in Firefox

Something in how Firefox parsed or inserted the style and children caused an error:
Node.insertBefore: Child to insert before is not a child of this node
which caused the dialog contents to be missing from the shadow DOM.  This fixes the missing contents by putting the style in using a different way.
2022-03-28 11:29:21 -06:00
nathan
f714729c26 Dialog / button fixes
- Fix vfsSelect did not close (seen in collabora save as)
- Turn off destroy_on_close, vfsSelect was destroying opening session (seen in mail compose 404)
- Add doSubmit property to Et2Button, dialog no longer gives error on every button click
2022-03-25 09:55:02 -06:00
ralf
55da72a661 replace jQuery.Deferred with regular Promise
trying to fix not working restore of splitter size in mail, thought it did NOT help in that regard :(
2022-03-25 10:02:14 +02:00
nathan
467e2ca8e2 Fix some bugs in nextmatch dialog action
Wrong action was used, leading to an error.  Plus, it kept a copy of the nextmatch in memory across the reload.
2022-03-24 14:48:02 -06:00
nathan
21da0b067a Get vfsSelect dialog working again 2022-03-24 13:01:41 -06:00
nathan
5e2b690b2a Et2Dialog Increase min-width 2022-03-24 11:41:29 -06:00
nathan
67dba61ef6 Et2Dialog changes
- dialog can now adopt buttons from the template.  Preferrably set slot="buttons", but it'll find them anywhere if you don't
- Reduce size & padding for non-template content
2022-03-24 11:21:32 -06:00
nathan
38a3af6981 Set modelValue if the inputWidget has a _callParser() method.
This makes sure the internal modelValue is set when we call set_value(), and preserves value if the widget is re-connected (like Et2Dialog does)
2022-03-24 09:46:27 -06:00
nathan
53a7405a61 Et2Dialog: Adjust header style
added a line below header, title slightly larger, adjusted padding
2022-03-23 14:50:00 -06:00
nathan
be6b49ca21 Remove debugger 2022-03-23 14:48:45 -06:00
nathan
db27086fe5 Change another reference to et2_dialog in nextmatch 2022-03-23 13:43:23 -06:00
nathan
79fab93351 Fix missing button labels from legacy dialog 2022-03-23 13:42:12 -06:00
nathan
9693cfe538 Switch nextmatch print & select all to using Et2Dialog 2022-03-23 13:28:15 -06:00
nathan
db7c68bdc7 legacy dialog - Fix missing buttons 2022-03-23 13:22:14 -06:00
nathan
6d538f29f0 Fix legacy dialog gave error without parent 2022-03-23 13:02:12 -06:00
nathan
cdbdf53d46 Et2Dialog: Make sure value has a content before loading template, otherwise we get an error from etemplate2 2022-03-23 13:02:12 -06:00
Hadi Nategh
d13d039349 Fix Taglist new free entry replacing other selected options 2022-03-23 18:16:19 +01:00
nathan
f5c1e21ee8 Switch placeholder widget to using Et2Dialog 2022-03-23 11:01:36 -06:00
nathan
39baec10ab Add some documentation to legacy dialog 2022-03-23 11:00:41 -06:00
nathan
2c92ddfe92 Et2Dialog: Fix template's DOMContainer ID still had .xet in it 2022-03-23 10:53:00 -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
ralf
2f616281e0 fix click eg. in mail on attachment as long as we have no blueimp/expose 2022-03-23 15:26:16 +02:00
nathan
3c4f85155d Get legacy et2_dialog working with createWidget() 2022-03-22 17:21:59 -06:00
nathan
56ed4e1267 Et2Dialog: Fix incorrect properties declaration 2022-03-22 17:19:53 -06:00
nathan
322fa3c8f4 Get nm_action dialogs working 2022-03-22 15:49:42 -06:00
nathan
8a033b6b9a Fix sometimes missing namespace causing some child widgets to have their value in the wrong place 2022-03-22 15:46:39 -06:00
Hadi Nategh
f4e877bcdf Adapt vfs dialogs with new Et2Dialog widget 2022-03-22 12:50:42 +01:00
nathan
ff274c2bc8 Et2Dialog changes
- Add some margin, border & box-shadow
- Smaller header & close button
2022-03-21 14:51:43 -06:00
nathan
b600059b68 Et2Dialog changes
- improve documentation
2022-03-21 09:52:09 -06:00
nathan
ff471946b5 Make et2_widget_dialog a stub that extends Et2Dialog so 3rd party apps might still work 2022-03-21 09:50:58 -06:00
Hadi Nategh
10453c41e3 Give maximum available height to BOX's parent node 2022-03-21 16:21:55 +01:00
nathan
e9a381da69 Et2Dialog changes
- Set template's DOM ID so CSS can style it

This is the best way to set [minimum] dimensions, though you can set width & height on the Et2Dialog.
2022-03-21 08:46:03 -06:00
Hadi Nategh
d7400503ac Use data value instead of index for close/edit handling as indexes might get change 2022-03-21 14:13:45 +01:00
nathan
9e989596c2 Et2Dialog changes
- Fix Et2Dialog.show_prompt() incorrectly returned too much, should be just the prompt value
2022-03-18 14:40:54 -06:00
ralf
a45d26511b fix not set invoker for expand_multiple_rows attribute 2022-03-18 22:26:15 +02:00
nathan
fefc822d9c Et2Dialog changes
- Fire a close event on close
- When closing, clear the template (if present)
2022-03-18 14:05:57 -06:00
Hadi Nategh
53ecdba510 WIP Et2Taglist: trying to get allowFreeEntries feature working 2022-03-18 19:13:30 +01:00
ralf
5650e8c616 ignore click action for an empty value 2022-03-18 09:53:09 +02:00
nathan
96039e0729 egw_open doesn't like the import... 2022-03-17 16:54:43 -06:00
nathan
255add7d98 Api: Switch from et2_dialog to Et2Dialog
Might be some I missed or can't change just yet
2022-03-17 16:18:39 -06:00
nathan
0479671ac4 Et2Dialog changes
- implement Et2Dialog.long_task()
- change to use Et2Dialog._buttons.label instead of Et2Dialog._buttons.text for better consistency
2022-03-17 15:21:15 -06:00
nathan
4fd50db1c3 Et2Dialog - only try to add an image to button if one is specified
Avoids error in button set image()
2022-03-17 13:06:29 -06:00
nathan
56571c6fc7 Et2Dialog changes
- Fix some event listeners
- Add getCompleted() promise that resolves when the dialog closes.
- Et2Dialog.alert() returns the promise directly, other static methods return the Et2Dialog to avoid breaking existing code

You can now wait for a dialog with:
Et2Dialog.show_prompt(null,"Name?").getComplete().then(([button_id,value]) => console.log(value));
or using async:
[button_id, value] = await Et2Dialog.show_prompt(null,"Name?").getComplete();
if(button_id === Et2Dialog.BUTTON_OK) {...}
2022-03-17 13:03:47 -06:00
ralf
ee36e83cbb fix Et2Date.set_value('') did not clear 2022-03-16 23:21:15 +02:00
ralf
b9cca9c5ff using set/get select_option plus a set_selection_options marked as deprecated
- get_select_options seems to be nowhere in use, so I did not implement it
- Et2Select* widgets with static options assign them in their constructor (like the r/o ones)
- removed a jQuery.proxy call, which we dont want in new code
2022-03-16 22:36:43 +02:00
nathan
5fdc594d00 Get templates working in Et2Dialog 2022-03-16 13:53:50 -06:00
nathan
c120f13466 Get separate egw object & some styling sorted out 2022-03-15 14:10:53 -06:00
nathan
ed72d63522 Add missing label property 2022-03-15 13:48:58 -06:00
Hadi Nategh
5dd67f2d3d Fix alarm not being fired sometimes 2022-03-15 18:56:47 +01:00
Hadi Nategh
1d559e9263 Allow multiple alarms being set for countdown widget 2022-03-15 16:58:05 +01:00
ralf
89ebb61f76 implement full_email attribute for et2-url-email with changed default of false 2022-03-15 14:39:42 +02:00
ralf
7a749a8f54 fix instead of all only last option was selected sometimes
because multiple property was not yet synced to DOM node
2022-03-15 11:43:55 +02: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
293e9f2fc6 Implement multi-select value as string[] or comma-separated
Had to overwrite some formMixin methods, which considered everything not string as invalid and set/get value to do the right thing for multi-select
Not sure if code should go to Et2WidgetWithSelectMixing to be shared with TagList ...
2022-03-14 21:13:47 +02:00
ralf
940e1b12c1 Implement expand_multiple_rows attribute for Et2Select using Et2InvokerMixin 2022-03-12 14:49:25 +02:00
nathan
4cf4c5090a Remove extra image declaration, now using auto-generated internal image property 2022-03-11 14:36:50 -07:00
Hadi Nategh
3705448aff Fix filemanager's view no longer works 2022-03-11 14:22:04 +01:00
ralf
dd7ebad1e7 Implement et2-select-account 2022-03-10 20:20:32 +02:00
ralf
6ebd09b275 size and align icons for url-widgets 2022-03-10 18:14:28 +02:00
Hadi Nategh
1be92b5b61 Style MixinInvoker widgets 2022-03-10 15:39:54 +01:00
ralf
9285b87a92 implement multiple attribute for et2-select reflecting it to selectbox
fixing TypeError set_multiple is not a function
2022-03-10 15:48:27 +02:00
ralf
0099b094b9 Fix TypeError: Cannot set property options 2022-03-10 14:57:00 +02:00
ralf
782958d7fc Fix/remove email validator and implement trailing_slash attribute 2022-03-10 14:26:06 +02: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
f34d7f4d9c Solution for boolean attributes that need row data: Use the default but hold on to the value that couldn't be parsed, defer processing until later. 2022-03-09 14:23:45 -07:00
nathan
944c0ad68e Add disabled to detached attributes 2022-03-09 10:17:59 -07:00
nathan
4d25d2ea8b Wait on parsing boolean attributes with ${row} if we're not actually in a row, same as string attributes.
Fixes boolean attributes don't follow $row values
2022-03-09 10:16:40 -07:00
nathan
d8517edafa Fix template load failed if it didn't had a template to load, now just resolving quietly.
Fixes calendar sidebox integration stalled eTemplate load
2022-03-09 09:02:36 -07:00
Hadi Nategh
7293b34493 Fix broken egwActionObject import, import statement being removed accidentally in f7f4053d1a 2022-03-09 11:21:06 +01:00
ralf
5fd4423775 fix indention making debugging wired otherwise 2022-03-09 09:43:39 +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
Hadi Nategh
e9fbc81565 WIP Taglist: implements get and set value 2022-03-08 16:19:03 +01:00
Hadi Nategh
7bdfceda87 WIP Taglist:
- fix dropdown menu not positioned correctly
- fix more styling
2022-03-08 09:24:18 +01:00
nathan
d0926226cd Fix set_min() & set_max() for Date 2022-03-07 14:33:09 -07:00
nathan
734401c6cd Get Date widget to use slots for better styling, also fixes re-initializing when not needed 2022-03-07 13:33:13 -07:00
Hadi Nategh
db4d0295b8 WIP Taglist: implement edit buttton 2022-03-07 17:36:15 +01:00
nathan
1671e69603 Fix required dates gave missing error even if they had a value 2022-03-07 09:14:15 -07:00
Hadi Nategh
bb1e9d2c30 WIP Taglist:
- fix tag style
- fix close button
- allow to open menu when there's fixed sel_options
2022-03-07 16:32:39 +01:00
Hadi Nategh
285b71b6aa WIP taglist: Fix backspace doesn't remove selected tags 2022-03-07 11:41:02 +01:00
ralf
f76ee3c920 forward min, max and step attribute to input node 2022-03-06 20:44:20 +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
ralf
3b896e0919 deprecated and replace attributes: needed-->required, blur-->placeholder in preprocessor
remove client-side code for them and enable translation of placeholder
2022-03-05 15:22:45 +02:00
nathan
aa2dc5c8f0 Maybe stop the disconnected month selectboxes? 2022-03-04 15:42:27 -07:00
nathan
0e4d32ea20 Get some neglected tests working again 2022-03-04 15:37:22 -07:00
nathan
4bd4402e28 Get taglist selected options showing up
Note the [internal] event listener bound in Et2Taglist.connectedCallback() that re-renders the TaglistSelection every time the taglist's [internal] value changes
2022-03-04 13:41:37 -07:00
nathan
2d3e3f86e1 Call requestUpdate() to pass on the new "multiple" value 2022-03-04 09:19:17 -07:00
nathan
4445b11a07 Make sure the option tag is included & registered as a webcomponent 2022-03-04 09:09:16 -07:00
Hadi Nategh
77a67d892b WIP Et2Taglist wiget:
- Make the taglist a Lion-combobox
- Use templateOptions for different taglist types
2022-03-04 14:23:19 +01:00
nathan
1893a2c7fe Fix duration in infolog list 2022-03-03 14:14:26 -07:00
nathan
aff71549a2 Move some code out of Et2Select into parent mixin for better re-use
Any child that has selectbox type functionality (extends Et2WidgetWithSelectMixin) needs to implement:
- _optionTargetNode() : HTMLElement
- _optionTemplate(option : SelectOption) : TemplateResult
2022-03-03 10:38:56 -07:00
nathan
882f2a913c Implement regex validator 2022-03-02 14:22:19 -07:00
Hadi Nategh
d093a7648c Remove unintentional committed ET2TaglistEmail file 2022-03-02 16:31:07 +01:00
Hadi Nategh
3112dc1399 WIP of Et2Taglist implementation 2022-03-02 16:28:45 +01:00
ralf
89613dd368 fix et2-date-duration showing NaN:NaN in timesheet
boolean attributes should not have a default of true, because DOM does NOT reflect false and we need to reflect for use in NM
--> changed default for select_unit for r/o duration to false and set it in timesheet.index to true
--> changing it for r/w too would require a lot of xet files to be updated (we don't need reflection there)
2022-03-02 11:02:24 +02:00
nathan
d7adf26ce6 Implement splitting up widget label using %s 2022-03-01 16:56:58 -07:00
nathan
7eca91e83a Implement clearing manual validation error messages 2022-03-01 16:55:55 -07:00
nathan
3c9b9540e4 Fix copy/paste error - Et2DateDuration does not have an options property to access 2022-03-01 16:50:05 -07:00
nathan
00f7b51fbd Hopefully prevent double-bind of input change
Should fix addressbook contacts/organisation filter
2022-03-01 15:15:24 -07:00
nathan
ae700fb391 Fix distribution list filter did not change filters when its value changed 2022-03-01 11:22:47 -07:00
ralf
5ff96e7818 fix last option select instead of empty label or any other option
eg. "shared by me" in Addressbook instead of "All contacts"
caused by this._inputNode not available when set_value was called
2022-03-01 18:29:13 +02:00
ralf
c70886f106 fix invalid can be null and then gives an error 2022-03-01 16:52:50 +02:00
ralf
36e3bd5de0 fix typo modalValue instead of modelValue to get validation (required) working
Had to overwrite formatter as it gave an error for accessing not yet set _inputNode
2022-03-01 16:51:40 +02:00
ralf
ac408f4eef Change handler setting modelValue for validation
setting it in getValue() alone does not remove validation message direct after entering a date
2022-03-01 16:09:27 +02:00
ralf
185e0eaf95 fix error, if widget has no change handler 2022-03-01 14:45:38 +02:00
Hadi Nategh
2d6770ebfa Fix missing Et2WidgetWithSelect class 2022-03-01 13:31:13 +01:00
Hadi Nategh
08549e25da Make Et2WidgetWithSelect a Dedup Mixin in order to make it available cross widgets 2022-03-01 12:35:33 +01:00
nathan
f8b1fcf412 Try and get nextmatch header change working with web components 2022-02-28 14:09:09 -07:00
nathan
5406704c74 Add set_min() & set_max() 2022-02-28 14:06:37 -07:00
nathan
30ddeb79b0 Add missing change listener 2022-02-28 13:45:47 -07:00
ralf
9260f25476 fist option with value of 0 was not selected 2022-02-28 17:42:57 +02:00
ralf
eff1f10484 fix sometimes first non-empty label used for empty value
seems update got triggered before empty_label was set
2022-02-28 15:21:23 +02:00
ralf
e567a0d465 fix et2-select use first option, not just empty_lable, if value is not in options 2022-02-28 14:11:57 +02:00
ralf
cdb944147f fix one left over needed property and added getter&setter for deprecated needed property 2022-02-28 12:12:04 +02:00
nathan
e166211a66 Fix required dates always failed as empty 2022-02-25 11:29:36 -07:00
nathan
44221f74ef Get server-side validation messages displaying 2022-02-25 10:30:55 -07:00
nathan
e048b26235 - Deprecate "needed" attribute in favour of standard "required"
- Fix some required CSS
2022-02-25 10:21:16 -07:00
Hadi Nategh
08f45d32db Fix onclick handling not working on description widget 2022-02-25 11:33:13 +01:00
ralf
832725ce52 fix display_format="hⓂ️s" for r/o only gave one best matching unit (eg. 5m) not all units (eg. 0:05:30) 2022-02-25 10:16:28 +02:00
ralf
83cfb34c3c fix not working date_format!="m" (the default) in NM by reflecting it into DOM
also adding it to all properties used by the r/o widget

This needs to be done by a lot more r/o widgets, if they assign their default values in the constructor!
2022-02-25 09:45:35 +02:00
nathan
d9e95dae87 Get needed attribute working
Will cancel submit, shows validation message
2022-02-24 15:53:40 -07:00
nathan
ce84dd753a Get validation messages working 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
f0455b2ad2 Show empty_label when given a value that is not in the list of options 2022-02-23 13:13:14 -07:00
nathan
41a18b6274 CSS fixes:
- Missing border in Et2DateDuration without unit selector
- Box alignment was not applied to widget inputs (Et2DateDuration) when the widget inputs did not fill all available space
2022-02-23 11:15:55 -07:00
nathan
ec13b1a472 Fix missing label in date widgets 2022-02-23 10:43:39 -07:00
ralf
c9f6c98a5d fix color-picker to not throw errors or lose its value
it clearly need more love ;)
2022-02-23 10:38:31 +02:00
nathan
354d15ba57 Support scroll wheel on date year, month, hour, minute 2022-02-22 11:23:54 -07:00
nathan
1e23a3c45e Fix date duration was 2px too wide
A border on et2-date-duration (:host) is sized differently from a border on its children
2022-02-22 10:37:13 -07:00
ralf
1c7e74a2af prefer [Login] button below over maybe existing SAML login button above 2022-02-21 21:19:41 +02:00
ralf
c2166c5750 fix select-boxes submit their old value, if they are onchange="1"
@Nathan: Not sure if this is the right fix, but I can't see where we use Lit's FormatMixing, which defines serializedValue (and therefore select-box always returns the old modalValue)
2022-02-21 20:58:56 +02:00
ralf
d23c8cbcb4 stub for set_validation_error to silence TypeErrors in app.ts 2022-02-21 16:56:30 +02:00
nathan
9079f97d7e Fix selectbox values were not set.
Paying more attention to the WebComponent life cycle here, rather than what our widgets do - connectedCallback(), requestUpdate(), updated() are more important than loadFromXML(), etc. which are only used when loading from the .xet the first time.
2022-02-18 12:02:27 -07:00
nathan
1776dd9005 Fix some readonly selectboxes were missing options 2022-02-17 16:37:59 -07:00
nathan
b8455e0b8d Fix Et2DateTimeOnly displayed 00:00 when value was "" 2022-02-17 10:30:35 -07:00
nathan
be4633c9fa Implement et2-date-duration 2022-02-16 16:45:40 -07:00
nathan
c81183f5f6 Fix incorrect value format in Et2Date 2022-02-16 10:52:37 -07:00
nathan
7cc9006e19 Add missing et2-date-timeonly widget 2022-02-16 10:43:15 -07:00
ralf
3f2c156914 fix missing flatpickr styles, thought you need to run: grunt cssmin 2022-02-16 15:36:06 +02:00
ralf
f29da5e613 fix TypeError with numbers not iterable
also problem with strings - thought no error - as they are iterated letter-wise, which is not what we want here
2022-02-16 10:35:09 +02:00
nathan
3ba1fe1416 Fix action pushed infolog edit dialog really wide 2022-02-15 14:01:07 -07:00
nathan
bc801f9c09 Fix missing import in et2 tests 2022-02-15 12:48:01 -07:00
nathan
7196455cbb Add some colour variables 2022-02-15 11:51:23 -07:00
nathan
8203eb3efd Use flatpickr for date widget calendar 2022-02-15 11:51:23 -07:00
nathan
0fb32b7a6a Fix JS error when cleaning up after printing (TS conversion issue) 2022-02-14 11:00:22 -07:00
nathan
d2020727fe Fix some missing translation problems 2022-02-11 13:02:21 -07:00
Hadi Nategh
a7aee1d3d4 Let the pdfjs deal with new render request 2022-02-11 12:33:28 +01:00
Hadi Nategh
44d632be2a Implements pdf-player custom element 2022-02-10 17:31:57 +01:00
nathan
c964ccd584 - Fix 'Forgot password' could not complete due to redirect
- Avoid error if no groups selected in registration configuration
2022-02-08 15:26:52 -07:00
nathan
650d76bd5c Common cleaning of r/o select value 2022-02-07 13:51:05 -07:00
nathan
28eb3fdd80 Add Et2DateTimeToday 2022-02-03 14:58:56 -07:00
nathan
b91f66c629 Add some cleanup to find_select_options() make sure we're returning nice arrays instead of objects 2022-02-03 14:45:14 -07:00
nathan
3a1d8dfe11 Hide hidden textboxes 2022-02-03 14:41:58 -07:00
nathan
5b4c93b36a Fix Et2Description tries to open on click even if href or link are not set 2022-02-03 13:52:14 -07:00
Hadi Nategh
2e5c433ab9 Add a boolean listonly option to vfs-upload widget in order to render only the file list 2022-02-03 15:56:03 +01:00
Hadi Nategh
1929ac02f6 Fix broken file widget's accept option caused by Resumable overriding it on initiation 2022-02-01 13:28:56 +01:00
Hadi Nategh
c7549daa54 Avoid setting an empty default image 2022-01-31 12:17:35 +01:00
Hadi Nategh
8e26062854 Add multi_src option into video widget 2022-01-28 15:51:33 +01:00
Hadi Nategh
66c6a4aef1 Implement custom html multi video element (makes it possible to merge and control multiple videos as one tag) 2022-01-28 13:49:17 +01:00
Hadi Nategh
d3f21bf333 Fix elements inside aligned box right/left don't get alignment properly 2022-01-25 12:43:37 +01:00
Hadi Nategh
4cf9c109d8 Make the ET2Button container accepting external css rules using ::part to get buttons in NM in shape (This should be avoided after NM is a WC) 2022-01-24 13:36:05 +01:00
Hadi Nategh
282c01f62e Trigger a requestUpdate when setting widget_id in order to get attribute ID updates available for inherited widgets. (e.g. ET2Button=>requestUpdate) 2022-01-24 12:49:59 +01:00
Hadi Nategh
5904ac11b0 Fix button widget can't deal with app specific images e.g. mail/navbar 2022-01-24 11:58:06 +01:00
Ralf Becker
073e7b9d2c enable et2-date-(duration|since)
need to register et2-date-since without _ro prefix, as there is only a r/o variant of the widget (currently)
2022-01-22 11:01:24 +02:00
nathan
f9ba6683be Read-only date-since and date-duration widgets 2022-01-21 13:46:12 -07:00
Ralf Becker
7e4bdece84 allow to set <overlay legacy="true"> to disable new web-components for the whole xet-file
also disable (not working) r/w et2-select web-component again
2022-01-20 22:09:48 +02:00
Hadi Nategh
d02afcbe54 Add more general styling to buttons 2022-01-20 17:34:38 +01:00
Hadi Nategh
c8e16dd3fb Fix broken alignments in button icon+label 2022-01-20 17:23:30 +01:00
Hadi Nategh
6fd23b631f Get the right size icon for imageOnly buttons and add right padding for buttons with icon+label 2022-01-20 16:36:51 +01:00
Hadi Nategh
28bcaf9422 WIP styling buttons: another approach to style buttons, keeping the icon slotted 2022-01-20 13:13:04 +01:00
nathan
cc9a6bcf8a Don't split single values 2022-01-19 15:57:59 -07:00
nathan
2ea15ed399 Fix the error when trying to load tracker 2022-01-19 13:37:40 -07:00
nathan
ac808f96e0 some cleanup 2022-01-19 13:18:41 -07:00
nathan
96c174d483 Implement select-account_ro as web component 2022-01-19 13:17:46 -07:00
Hadi Nategh
d33534e2e1 WIP styling buttons 2022-01-19 18:30:45 +01:00
Ralf Becker
5ec2a233a4 using WCs for simple select, r/o select-* and r/o date(-time)
ToDo/Questions Nathan:
- Tracker index gives a client-side TypeError
- <et2-select-account readonly="true" is not registered, but <et2-select type="select-account" readonly="true" works
- <et2-date-time was registered as <et2-datetime, was that a typo of a conscious choice to rename the widget and not just prefix with et2-
- not yet enabled are r/w et2-date(-time)
- still missing are r/o et2-date-(since|duration)
2022-01-19 10:58:01 +02:00
nathan
8eb0f21893 Fix webcomponents did not load value 2022-01-18 14:13:25 -07:00
Hadi Nategh
8b9e81fbfd WIP styling buttons and color definitions 2022-01-18 15:13:48 +01:00
nathan
32be8200a6 Fix copy/paste error - looks like select-access wasn't implemented in et2 2022-01-17 15:31:25 -07:00
nathan
e07220392d Select widgets with static options as WebComponents 2022-01-17 15:13:50 -07:00
nathan
09cbc44e67 Get cached server-side options working for webcomponent 2022-01-14 09:29:59 -07:00
nathan
82277c802b Readonly textbox 2022-01-13 15:31:01 -07:00
nathan
20c82b6d72 Starting on selectboxes with static options.
Not entirely sure this is the way to go, but at least we don't have to
 1. copy the options
 2. inherit the whole editable object for a readonly
2022-01-13 15:28:52 -07:00
nathan
a5f8b6076a Add some tests for Et2Box.disabled to make sure it behaves. 2022-01-12 14:35:01 -07:00
nathan
19a2b13974 Api: We also need to trigger LitElement update when we change it here, I guess.
Fixes disabled attribute didn't change when set_disabled() was called.
2022-01-12 13:55:58 -07:00
nathan
12120b5434 Api: Fix disabled not being correctly set 2022-01-12 11:41:13 -07:00
Ralf Becker
a3b63c9514 implement new "units" parameter to limit used units in date-since widget
eg. <date-since units="d" shows age in days
2022-01-12 12:47:49 +02:00
nathan
5a3e54a592 Fix for disabled not being set in some cases, try to deal with type 2022-01-11 15:16:50 -07:00
nathan
2c59914b74 Fix disabled attribute was not getting properly handled
In particular Admin -> File Manager -> VFS mounts and versioning had the "Delete all older versions..." block disabled when it shouldn't have been.
2022-01-10 09:32:31 -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
fd7e7e2828 Basic tests for Et2Select, & fixes for bugs they revealed 2022-01-07 14:13:38 -07:00
nathan
57860e03db Get onchange working (for select widget) 2022-01-06 16:22:55 -07:00
nathan
4ed888476c Deal with some IDE warnings
better documentation of things tried
2022-01-05 13:14:28 -07:00
nathan
7ab60918f4 Fix missing bits in cssImage() example 2022-01-05 10:24:23 -07:00
nathan
a48e6cf1d3 - Add cssImage() to help with putting our images into LitElement CSS blocks
- Some code cleanup
2022-01-05 10:21:18 -07:00
nathan
85f753324d Remove unused import 2022-01-05 08:07:01 -07:00
nathan
f8ab5c521e Selectbox webcomponent 2022-01-04 15:38:10 -07:00
nathan
8d5f39b2d3 Add tests for description widget 2022-01-03 09:58:55 -07:00
nathan
0f45aed876 Reflect properties into DOM attributes, it's faster 2021-12-21 11:16:58 -07:00
nathan
5bdf12f1b9 - Detached widgets still need a loadingFinished() for if they are children of legacy widgets
- Add description click handler
2021-12-21 10:52:39 -07:00
nathan
602ac44c15 Fix readonly webcomponents inside a legacy widget were not loaded as readonly 2021-12-21 10:50:21 -07:00
nathan
fa707f0627 Fix widget.egw() returning null in some cases when widget parent was not completely in widget tree 2021-12-21 10:45:38 -07:00
nathan
7fcf6f1423 Add some more properties for description
activate_links
extra_link_target
extra_link_popup
href
2021-12-20 15:15:32 -07:00
nathan
e1ab343a5d WIP on Et2Description. Shows improvement in nm render speed. 2021-12-17 14:47:19 -07:00
nathan
4e597b5672 Add date readonly, some class optimizing 2021-12-17 10:06:37 -07:00
nathan
3f71a75c86 Avoid error if expand finds nothing for the value (returns null) 2021-12-16 13:05:13 -07:00
nathan
9a3753eb93 Lets try this fix for the ID problem 2021-12-16 11:28:07 -07:00
Hadi Nategh
170ac4d6e2 Fix error Cannot read properties of null (reading 'split') 2021-12-16 11:39:43 +01:00
nathan
a027649ae5 Fix the failing clone() 2021-12-15 11:49:18 -07:00
nathan
528134cfac Adapt nextmatch to work with webcomponents + readonly datetime widget 2021-12-14 16:55:57 -07:00
nathan
a7a84df7e5 Etemplate: Set a gap instead of using margin 2021-12-14 08:55:34 -07:00
nathan
d7a001cef0 Documentation fix 2021-12-10 13:42:38 -07:00
nathan
ea2004173f Etemplate: Fix readonly was still giving a value 2021-12-10 13:24:06 -07:00
nathan
82b3abc290 Etemplate: Some more tests for readonly 2021-12-10 11:15:02 -07:00
nathan
684d0846dc Api: Attributes can contain multiple translatable substrings wrapped with {} 2021-12-09 11:32:31 -07:00
nathan
081b692dd1 Fix webcomponent children were not fully loaded before et2_ready callback was called 2021-12-09 10:54:37 -07:00
nathan
4fe9f6c614 Api: Stop images inside boxes from stretching 2021-12-09 09:26:58 -07:00
Hadi Nategh
d42f20cf38 Fix issue contact plus button sometimes gets stuck 2021-12-09 15:08:42 +01:00
nathan
50f4b5cd47 Fix missing calendar participant + button
set_readonly() was missing, getWindowTitle() was using .options.value instead of get_value()
2021-12-07 13:36:53 -07:00
nathan
a73f0771e6 Fix TypeError: Cannot read properties of undefined (reading 'position')
Caused by LitElement not having a styles property.  Just skip those to avoid the error
2021-12-06 14:42:17 -07:00
nathan
d69d57e6e9 Merge branch 'master' into web-components 2021-12-06 10:52:10 -07:00
Hadi Nategh
c115e762b1 Add underline button into html editor's toolbar 2021-12-06 10:14:37 +01:00
nathan
d126834468 * Etemplate: Add link icon overlay to link list 2021-12-03 14:28:54 -07:00
nathan
5af7d0f644 * Etemplate: Add link icon overlay to link list 2021-12-03 14:18:48 -07:00
nathan
32d5bae817 Fix nm left template in wrong place 2021-11-19 11:57:22 -07:00
nathan
105b0705b1 - Fix duplicated row from template above nextmatch
- Fix favorite in wrong place
2021-11-18 14:37:23 -07:00
nathan
7831529ecb Improve warning about parenting for WC widgets into legacy widgets 2021-11-18 14:34:13 -07:00
nathan
b91e1d8a5f Merge branch 'master' into web-components 2021-11-18 10:28:30 -07:00
nathan
52a2d4e9bb Clear tree before setting options to avoid duplicates 2021-11-10 15:00:32 -07:00
nathan
d15d7a3426 Implement parent_node attribute
Fixes calendar sidebox was not shown
2021-11-10 13:41:23 -07:00
nathan
7b11a25b8d Fix some legacy parent issues where parent DOM node was not found when needed
- Checking & waiting for promises
- Could not get DOM nodes from nm header sub-templates
2021-11-10 11:47:07 -07:00
nathan
a717234b2f Merge branch 'master' into web-components 2021-11-09 15:02:25 -07:00
Hadi Nategh
5cf0ced64a Add missing jquery-ui.min.js 2021-11-09 11:46:10 +01:00
Hadi Nategh
968774d829 Update jQuery-ui to 1.13.0 2021-11-09 11:06:17 +01:00
nathan
c7e6baed69 Fix datetime didn't handle '0' as empty / blank 2021-11-08 13:40:28 -07:00
nathan
b78b7c3960 Fix formatter tests to work independant of timezone when run 2021-11-04 09:25:37 -06:00
nathan
b7daf84d90 Merge branch 'master' into web-components 2021-11-04 09:24:37 -06:00
nathan
ca429d0fae Tests for date + time parsing & formatting, and fixing the bugs they revealed 2021-11-03 13:49:39 -06: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
Hadi Nategh
f21127df8f * Filemanager: Fix video controller not working in filemanager gallery 2021-11-02 17:43:56 +01:00
nathan
312bf62adc Implement readonly for date widget 2021-11-01 10:21:08 -06:00
nathan
76d7447dab Merge branch 'master' into web-components 2021-11-01 09:37:26 -06:00
Hadi Nategh
118b9c0e92 Fix onchange event not working for date-range widget 2021-10-22 13:16:33 +02:00
nathan
068e3feff0 Api: Fix setting the date min attribute to a number did not work
jQueryUI timepicker checks the type of variable
2021-10-19 14:15:37 -06:00
nathan
2256a26327 Make date widget work a little better WRT timezones 2021-10-18 16:03:05 -06:00
nathan
fbbc466c78 Merge branch 'master' into web-components 2021-10-18 10:56:05 -06:00
nathan
cbe32069c2 Fix kanban merge into document stopped working with introduction of PDF checkbox 2021-10-18 09:42:12 -06:00
Hadi Nategh
b84ef08c29 Set node property for inputWidget as it's expected to contain input node 2021-10-13 15:36:33 +02:00
Hadi Nategh
f454536165 WIP implementing Iframe widget:
- Get some styling
- An approach to display label slot
2021-10-13 12:17:07 +02:00
Hadi Nategh
76a1f3c584 WIP implementing Iframe widget:
- Add fullscreen option
2021-10-13 11:11:52 +02:00
Hadi Nategh
13e717ce68 Merge pull request 8feac04979 #108 from Alexandros into the master 2021-10-11 10:34:19 +02:00
Hadi Nategh
be57764fa6 WIP implementing Iframe widget 2021-10-08 16:03:09 +02:00
nathan
d43c27a31b Fix nested placeholders (customfields from other apps) were not being displayed properly 2021-10-07 14:51:16 -06:00
nathan
c73a7beac8 Add placeholder list for calendar & filemanager 2021-10-07 13:47:14 -06:00
nathan
66f5c4bfc2 Add start of Et2Date tests 2021-10-07 08:41:53 -06:00
nathan
02dce82010 Merge branch 'master' into web-components 2021-10-06 14:02:22 -06:00
nathan
6126bc2ac9 Placeholder dialog: Placeholder groups can now have groups
References (info_contact)/ customfields to other apps are expanded so all their placeholders are available as well
2021-10-04 14:45:57 -06:00
nathan
4b67e78012 Fix selectbox grouped options were not using value if provided 2021-10-04 14:41:08 -06:00
Hadi Nategh
b52abb9b62 Implement a test for Colorpicker widget 2021-10-04 14:42:30 +02:00
nathan
96bdcd7c0e Fix some placeholder dialog bugs:
- Fix user placeholder does not use selected entry, so looks like a bug.  Now hiding entry for user placeholders.
- Fix user & general showed up in entry app selectbox
- Fix insert address dialog was not passing selected entry
2021-10-01 13:35:27 -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
707c57ecf0 * Add option to merge documents as PDF 2021-09-28 17:00:55 -06:00
nathan
f6828a8205 Placeholder dialog: Add "name, email, phone snippet", fix some more missing translation issues 2021-09-28 10:16:57 -06:00
nathan
a39eeef7e7 Placeholder dialog: Fix some missing translation issues 2021-09-28 09:49:29 -06:00
Hadi Nategh
ae5e11f7a2 Translate details title before setting it into the DOM 2021-09-28 17:08:36 +02:00
nathan
7f930a6221 Placeholder dialog: Support for other apps, starting with Infolog 2021-09-27 14:46:41 -06:00
Hadi Nategh
6f8fccb1ad Get mail app working (we use old-box widgets until replacing splitter with a web-component) 2021-09-27 16:14:42 +02:00
nathan
e460ed52d4 Et2Date style improvements 2021-09-24 11:13:14 -06:00
nathan
901bb2b70d Fix Calendar popup was opening with wrong date 2021-09-23 14:12:15 -06:00
nathan
25773a929f Merge remote-tracking branch 'origin/master' into web-components 2021-09-23 10:22:18 -06:00
Hadi Nategh
d518a2b118 Move framework push boradcast method into base class 2021-09-22 11:54:01 +02:00
nathan
d512238dc0 * Collabora: Add address insert dialog 2021-09-21 14:07:22 -06:00
nathan
8e67e2efad WIP on placeholders
- Some TS cleanup
- Fix error in preview giving wrong results
2021-09-21 10:19:24 -06:00
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
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
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
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
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
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
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
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
5dbba31285 Fix toolbar list header taking a while to get opened 2021-09-08 12:07:47 +02:00
Hadi Nategh
91d74767fe Add an option to configure toolbar's list header style 2021-09-07 16:30:53 +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
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
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
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
Hadi Nategh
53f156a66b WIP implementing colorpicker widget 2021-09-02 16:47:49 +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
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
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
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
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
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
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
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
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
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
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
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
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