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
nathan
b0322c549a
Attribute parsing & basics of WebComponents looking like et2 widgets
2021-07-14 09:49:36 -06:00
nathan
e474333bc8
Get stylite gantt extra bits running
2021-07-09 11:56:06 -06:00
Ralf Becker
a5ad691757
deprecated egw.includeJS() in favor of es6 import statement
...
with egw composition happening in main window the used import statement happens in that context and NOT in the window (eg. popup or iframe) this module is instantiated for!
2021-07-09 17:27:22 +02:00
Ralf Becker
4f95ebb510
add a missing import
2021-07-09 14:50:15 +02:00
Ralf Becker
65502ace6e
re-added daily cache-buster for app.js and removed explicit timepicker include causing a double include
...
(we still sometimes get a jQuery.datepicker is not defined, but it seems a timing issue and is NOT fixed by including it twice!)
2021-07-09 10:07:31 +02:00
Ralf Becker
edacfc12cb
remove (unnecessary) double egw.min.js import
2021-07-09 08:15:17 +02:00
Ralf Becker
5b8923f548
replace include of egw.js with egw_core.js, which provides the egw.extend
...
fixes the stray egw.js include
2021-07-08 17:04:48 +02:00
Ralf Becker
b2a48fc942
fix vfs-select dialog destroyed et2 session of popup calling it
...
dialog set etemplate_exec_id of popup, to be able to submit to server, but must NOT destroy the et2 session when the dialog closes
et2_dialog now calls etemplate2.clear(true, true) to keep app-object AND et2 session
2021-07-07 16:29:04 +02:00
Hadi Nategh
052f5f23cc
Remove framework object from import statement which would override the actual object
2021-07-07 12:31:11 +02:00
Ralf Becker
e8da7caa64
fix after rollup build popups need extra reload
...
caused by no longer necessary import of etemplate2 in egw.js, as Promise works and etemplate2 is global
2021-07-07 10:32:06 +02:00
Ralf Becker
cf101c8e13
fix not working nm_*_popup actions and others, see #60364
2021-07-07 09:30:29 +02:00
nathangray
0904057714
Solve some calendar issues that were breaking add / edit
...
- Date widget did not find timepicker.formatTime() when it wanted it
- Faked parent widget was not a good enough fake, added better checking
2021-07-06 11:05:03 -06:00
Ralf Becker
b5015299ee
add missing sprintf import
2021-07-06 16:41:23 +02:00
Ralf Becker
5505c9a314
make etemplate2 global, as we need it to check an app uses it and then call methods on it, fixes #60374
2021-07-06 16:00:10 +02:00
Hadi Nategh
81bc236045
Fix vfsSelectUI destroys et2 object after dialog being closed
2021-07-06 15:59:51 +02:00
Hadi Nategh
89695620bc
Make sure et2 widgets are there before the container into vfsSelectUI app object
2021-07-06 15:50:49 +02:00
Hadi Nategh
70faf346e4
Fix error egw_keycode_translation_function is not defined
2021-07-06 14:53:56 +02:00
Ralf Becker
75fddd325b
if value has already been set, re-set it by it's id(s), fixes #60304
2021-07-06 14:43:13 +02:00
Ralf Becker
51b0888b5d
fix diverse calendar errors #60294
...
thought not sure how this is supposed to work in 21.1, both look like a general problem
2021-07-06 13:06:32 +02:00
Hadi Nategh
cbed97de6d
Fix drag and drop actions not working
2021-07-06 12:41:16 +02:00
nathangray
c380ad906d
Api: Get rid of double super constructor call
2021-07-02 10:17:49 -06:00
Ralf Becker
cfd11cf821
replace eval with Function constructor to quiten rollup warning
2021-07-02 15:27:46 +02:00
Hadi Nategh
1971fa0e18
Import vfsSelectUI
2021-07-02 11:44:11 +02:00
Hadi Nategh
463d931209
Fix cropper in avatar widget
2021-07-02 10:53:10 +02:00
Ralf Becker
b88716c8b6
legacy load jQueryUI as tooltip has wired context problems if loaded as module
2021-07-02 08:52:18 +02:00
Ralf Becker
68155251fa
fixing a couple of jQuery plugin includes
...
thought jQueryUI-tooltip is still broken and we either need to legacy-load jQuery(UI) or fix the tooltip
2021-07-01 16:33:15 +02:00
Ralf Becker
8c7722c8b0
1. loading dhmtlx(tree|menu) again via script tag
...
2. fixed not loaded app.js in egw_json by using import direct and not includeJS (and therefore removed additional include in et2_load)
3. adding cache-buster for egw.js and app.js endpoints to force reloads (not adding them for anything else, as it interferes with rollup
2021-07-01 14:36:51 +02:00
Hadi Nategh
b9d47c1511
Replace jQuery.base64 with native JS and remove its library
2021-07-01 10:26:51 +02:00
Hadi Nategh
e5d0e5def0
Avoid triggering initial resize if not necessary
2021-07-01 10:22:42 +02:00
Ralf Becker
05405b955a
remove generated .js files from git
2021-07-01 08:38:08 +02:00
nathangray
154946f39e
Get news_admin loading with rollup
2021-06-30 14:21:58 -06:00
nathangray
3adce4ad58
Get diff widget working
2021-06-30 13:36:59 -06:00
nathangray
e75d3a0777
Get taglist working
2021-06-30 12:45:06 -06:00
nathangray
3add958afa
The results of Guy Bedford's help
...
Egroupware will load into addressbook & show rows
Most base files should be bundled server-side & included
rollup.config.js controls the process
Still needs work:
- consider /dist directory for best-practice
- cleanup
- other built-in apps
- EPL / external apps need Guy's multi-stage work
2021-06-25 14:49:24 -06:00
nathangray
459c021b8c
Comment this out while we work on rollup
2021-06-23 16:26:25 -06:00
nathangray
6559a053f3
Merge branch 'master' into new-js-loader to bring it up to date
2021-06-23 15:40:50 -06:00
nathangray
9242673aa1
- A first webcomponent (et2-button)
...
- Some mixin logic, not used but available
2021-06-23 15:39:58 -06:00
nathangray
186e03671a
Change merge download/Collabora to a common generation method, avoiding need to POST.
...
This allows Kanban to download merge files
2021-06-23 11:20:09 -06:00
nathangray
78a01ced17
Api: Allow Web Components to be added into templates (.xet files)
...
Current limitations:
- display only, I haven't figured out getting values back yet
- no children in the web components
2021-06-18 14:20:17 -06:00
Hadi Nategh
498cb2994d
Add missing compiled js for url widget
2021-06-18 15:29:19 +02:00
nathangray
f64a026898
Etemplate: Only re-set label if the new value is different
...
Fixes initialization could clear the link text if value was set first
2021-06-18 15:04:00 +02:00
Ralf Becker
45758aaada
we must not make json_request object global as it interferes with registered plugins from different windows
...
Example was tracker site config opened in an iframe, then stopped further et2_load responses to the main window
because it still used window object from the iframe and therefore could not find the node
2021-06-18 11:09:53 +02:00
nathangray
5a209a00f0
Avoid infinite loop if loading JS file fails
2021-06-17 14:17:58 -06:00
Hadi Nategh
6b57c6477f
Revert unintentionally deleted egw_action.d.ts file
2021-06-15 13:47:37 +02:00
Ralf Becker
2388970002
fix blank screen when changing views in admin
2021-06-15 12:50:10 +02:00
Ralf Becker
af3193480c
fix not working applyFunc if app.js was not yet loaded (missing return of the Promise)
2021-06-15 11:51:10 +02:00
Ralf Becker
8432cca3ea
show (caught) exceptions during import now as error for easier spotting
...
console.error instead of console.log
2021-06-14 15:22:16 +02:00
Ralf Becker
829defa0c1
also import old jsapi with rest of egw object
2021-06-14 15:12:52 +02:00
Hadi Nategh
3c9e33ab46
Add missing import for egw_action_constants
2021-06-14 15:09:53 +02:00
Hadi Nategh
e0341e49e6
Remove duplicated constants from egw_keymanager
2021-06-14 14:57:55 +02:00