Johannes Meyer
23ee95e45f
js: Only show a single datetime picker in each container at a time
2021-06-22 11:22:19 +02:00
Johannes Meyer
c01e0f9dc8
js: Don't add scheme and location when reloading CSS
...
It's not necessary and may (has) lead to the following case:
`http://localhost/http://localhost/icingaweb2/css/icinga.min.css `
2021-06-18 17:19:18 +02:00
Johannes Meyer
1c7e5b31bf
js: Don't bypass our cache when reloading CSS
...
The timestamp previously added, forces the browser to ignore
its own cache and thus it doesn't transmit the `If-None-Match`
header. We then re-calculate the the CSS possibly for no reason.
If there is a re-calculation indeed required it should be still
done now since the ETag transmitted by the browser is outdated.
refs #4340
2021-06-16 14:59:19 +02:00
Johannes Meyer
7c4488ddc7
input-enrichment: Fix incorrect identification of enriched elements
2021-06-09 15:19:05 +02:00
Johannes Meyer
e794967389
js: Require libs from `icinga/icinga-php-library` now
2021-06-01 12:06:58 +02:00
Johannes Meyer
cc0c6fc71b
js: Avoid usage of `.matches()` as it isn't available with IE11
2021-05-25 17:19:03 +02:00
Johannes Meyer
4236dd84d9
datetime-picker.js: Show an icon inside the flatpickr input
2021-05-17 13:20:43 +02:00
Johannes Meyer
5a6e3cf32f
datetime-picker.js: Cleanup unused flatpickr instances
2021-05-17 13:20:43 +02:00
Johannes Meyer
e704309c41
modal.js: Trigger `close-modal` when.. closing a modal
2021-05-17 13:20:43 +02:00
Johannes Meyer
90a056d988
datetime-picker.js: Append flatpickr container not to body
...
The body isn't cleared without a full reload. This way the
flatpickr container resides in the same container as the
input's form.
2021-05-17 13:20:43 +02:00
Johannes Meyer
162d898d42
js: Introduce `DatetimePicker` behavior
...
Utilizes `flatpickr` from ipl-web.
2021-05-17 13:20:42 +02:00
Johannes Meyer
54720a1fc1
collapsible.js: Fix flickering
2021-05-12 09:06:26 +02:00
Johannes Meyer
f50c095e15
js: Support custom collapsible controls in place of the default one
2021-05-05 17:59:12 +02:00
Johannes Meyer
85e9f06510
js: Mark autosubmits as autosubmits, not as autorefreshes
...
fixes #4346
2021-04-12 09:39:48 +02:00
Johannes Meyer
aa03631eef
js: Allow to mark requests explicitly as autosubmits
2021-04-12 09:39:48 +02:00
Johannes Meyer
a8be92c245
loader.js: Still apply some accessibility changes..
...
..if a renderHook discards an autorefresh. There is
unfortunately no way to distinguish between a renderHook
that really discards changes or one that applies them
on the DOM itself. If it's the first, this change
*shouldn't* hurt. If it's the latter, users should
benefit.
2021-03-31 12:38:35 +02:00
Johannes Meyer
e65ec1900a
js: Add new special redirect target `__CLOSE__`
...
This has the same effect as a normal redirect. The benefit of it however
is that the server doesn't need to know what's being shown in the left
column. It just instructs the client to close the right and refresh the
left column. But still produces a new history state, it's a forward
navigation nonetheless.
2021-03-30 13:25:40 +02:00
Johannes Meyer
94a16056d7
js: Speedup collapsible.js by a factor of 10
...
It's still relatively slow as it forces a reflow in the
browser if there are many collapsibles in the view.
I didn't manage to identify the issue yet, but I left
a TODO at the location that's responsible for it.
2021-03-30 09:31:57 +02:00
Johannes Meyer
1675cc6d74
js: Make Utils.getCSSPath work without a jQuery set
2021-03-30 09:31:57 +02:00
Johannes Meyer
25263e767b
js: Allow to disable persistence for collapsibles
2021-03-30 09:27:22 +02:00
Johannes Meyer
07251e6d5e
modal.js: Really only close the modal if the user clicks outside of it
...
The click event fires only after the mouse button is released, which
may happen on the outside, after the user tried to select something
and overrun accidentally. A close is then not desired as the user
may loose input. The mousedown event fires right when the button
is pressed and suffices on the outside of the modal.
2021-03-09 08:52:10 +01:00
Johannes Meyer
7790a72efa
js: Only close a modal if an ESC press is not handled otherwise
2021-03-09 08:52:10 +01:00
Johannes Meyer
b4531b6b45
js: Add support for the `search-editor` input enrichment
...
Also makes it possible to enrich inputs in modals
2021-03-09 08:52:10 +01:00
Johannes Meyer
b17be671bc
js: Accept non-jQuery nodes in method `EventListener.bind()`
2021-03-09 08:52:10 +01:00
Johannes Meyer
e4ff391b1a
js: Trigger a `rendered` event if SearchBar editor is opened
2021-03-09 08:52:10 +01:00
Johannes Meyer
f44ea884bd
js: Suspend auto refresh once `search-bar` enrichment opens its editor
2021-03-09 08:52:10 +01:00
Johannes Meyer
1f29c4a2fe
js: Allow to suspend auto refresh for individual containers
2021-03-09 08:52:10 +01:00
Johannes Meyer
4366f93127
js: Support new input enrichment type `search-bar`
2021-03-09 08:52:10 +01:00
Johannes Meyer
027e468943
js: Update a form's action if it's a auto submit response with `X-Icinga-Location-Query`
2021-03-09 08:52:10 +01:00
Johannes Meyer
43dd89f946
js: Also support `_self` and such target ids for response header `X-Icinga-Container`
...
The server can now instruct the client to render the response in a different container
2021-03-09 08:52:10 +01:00
Johannes Meyer
6e8ca9cdda
js: Add method `identifyLinkTarget()` to the loader
2021-03-09 08:52:10 +01:00
Johannes Meyer
4f57aa68cd
js: Transmit `X-Icinga-Container` for all requests
...
This tells the server which container the client will use
to render the response in
2021-03-09 08:52:10 +01:00
Johannes Meyer
4d4f5b3a69
js: Don't serve scripts utilizing ECMA2016+ features
...
i.e. library javascript assets
2021-02-22 16:01:42 +01:00
Johannes Meyer
5c5e83a700
loader.js: Don't use the regex DotAll modifier, it's ES2018+ only
...
i.e. not supported by Microsoft Edge
2021-02-22 15:07:55 +01:00
Johannes Meyer
9dae3bdf88
loader.js: Only abort GET autorefresh requests
2021-02-18 14:10:02 +01:00
Johannes Meyer
57b4a31bc3
js: Don't navigate right when opening a modal
...
Isn't the prettiest fix. I would have liked to completely
remove the target preparation from `getLinkTargetFor`.
But this is the easiest fix since it's only for modals
that preparation is not desired. It's also the most
compatible change.
2021-02-17 12:51:26 +01:00
Johannes Meyer
defd8132aa
form.js: Don't abort content updates in case of auto submits
2021-02-09 09:13:11 +01:00
Johannes Meyer
f2e53d420b
js: Don't mark requests caused by `__BACK__` as autorefresh
...
It's not an autorefresh and causes issues with form.js otherwise.
2021-02-05 16:38:17 +01:00
Johannes Meyer
eff5c4e1d1
input-enrichment.js: Import required classes with `require()`
2021-01-14 11:57:24 +01:00
Johannes Meyer
dc5e39ef1c
input-enrichment.js: Add method `update()`
2021-01-14 11:57:24 +01:00
Johannes Meyer
67de8a079a
js: Initialize all types of input enrichments
2021-01-14 11:57:24 +01:00
Johannes Meyer
fcd0a0a698
complete.js: Keep IE11 compatibility
2021-01-14 11:57:06 +01:00
Johannes Meyer
4019522da1
loader.js: Disable inputs in forms not having role `search`
...
Previously only the `#search` input wasn't disabled, now also
the new filter input isn't. This is required to re-focus the
input after submission as disabled elements loose focus.
2021-01-14 11:57:06 +01:00
Johannes Meyer
3c41c14653
complete.js: Properly manage enrichment persistence
2021-01-14 11:57:06 +01:00
Johannes Meyer
d19a55311b
complete.js: Keep used terms in case of an autorefresh
2021-01-14 11:57:06 +01:00
Johannes Meyer
5924d610a1
js: Provide additional parameters for events `beforerender` and `rendered`
...
beforerender: content, action, autorefresh, scripted
rendered: autorefresh, scripted
2021-01-14 11:57:05 +01:00
Johannes Meyer
dad0122f11
js: Introduce behavior complete.js
2021-01-14 11:56:06 +01:00
Johannes Meyer
46769b9be2
js: Add `.impact` to `.content` if a control is automatically submitted
2021-01-13 17:19:39 +01:00
Johannes Meyer
6197d5f0af
form.js: Only track real value changes and reset upon reverts
2021-01-13 17:19:18 +01:00
Johannes Meyer
ca74e14812
ui.js: Don't require jQuery objects in `getUniqueContainerId`
2021-01-13 17:18:55 +01:00