241 Commits

Author SHA1 Message Date
Johannes Meyer
5962debe09 js: Transmit X-Icinga-AutoSubmittedBy upon autosubmits
This header contains the name or id of the element responsible
for triggering the automatic form submission.

(cherry picked from commit cbf8cfc738120bb96f848cf0dd63887ff68f39b8)
2023-01-12 11:03:17 +01:00
Johannes Meyer
437f1b0f0e Merge pull request #4976 from Icinga/do-not-disable-all-inputs-on-form-submit
js: Only disable submit buttons on form submit
(cherry picked from commit 96179182e413b5285ad8be00e7124fd278e300c3)
2023-01-12 11:02:00 +01:00
Sukhwinder Dhillon
a90f4ba60f Fix: Scheme and hostname prepended to col2 url in the address bar (#4777)
(cherry picked from commit 707775fe26ad36a090d0f7466a9079a61156db82)
2022-06-15 15:10:47 +02:00
Eric Lippmann
ef7f40d319 Merge pull request #4600 from Icinga/fix/landing-redirects-in-col2-do-not-load
js: Fix that redirects into currently empty columns don't work
(cherry picked from commit d3bc7b673180ce1c32d890ba60f33a19f8a95abc)
2021-11-18 10:48:14 +01:00
Markus Frosch
ea1a46ef43 js: Fix regression for loading dependent modules for sub-containers (#4533)
(cherry picked from commit d4763498e4db6a1135d9bcf3e6c4ba1b27cf680a)
2021-11-09 09:43:36 +01:00
Johannes Meyer
5e15612058 loader.js: Don't scroll to nav anchors that don't want this
(cherry picked from commit 698ac5812fb97d7b3a63a26a986e7806a9b277c0)
2021-11-09 09:42:28 +01:00
Johannes Meyer
6573dc5eca loader.js: Don't load a redirect in col1, if col2 has similar content
fixes Icinga/icingadb-web#284

(cherry picked from commit 18188f71858457e81e32845ab507a09db17af5ff)
2021-11-09 09:35:33 +01:00
Johannes Meyer
0b2891c28a js: Don't focus the announcment container
fixes #4543

(cherry picked from commit 908adc66c186400fad2209afb7f1e2ef11174d66)
2021-11-09 09:35:08 +01:00
Johannes Meyer
5e8db696cb js: Really maintain refresh interval over redirects
fixes #4549

(cherry picked from commit 7ae8f26b92a81a8143dcce9aa5b0cbaaee13ee5e)
2021-11-09 09:35:00 +01:00
Johannes Meyer
228e503131 js: Allow to reload the window 2021-07-07 09:41:48 +02:00
Florian Strohmaier
8b7a3f05af JS: Add icon to js notifications 2021-06-30 08:33:51 +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
1f29c4a2fe js: Allow to suspend auto refresh for individual containers 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
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
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
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
46769b9be2 js: Add .impact to .content if a control is automatically submitted 2021-01-13 17:19:39 +01:00
Johannes Meyer
fbf3a1f757 loader.js: Don't add form submits other than GETs to the history
This has previously not been an issue, as form submits seem to have
never targeted another url than their container's current one.
Though any form that did this, was pushed to history upon submit.
This happens now only for `GET` forms.
2021-01-13 17:17:48 +01:00
Johannes Meyer
3e29fba052 js: Transmit X-Icinga-Autorefresh=1 with autorefresh requests 2021-01-13 17:16:53 +01:00
Johannes Meyer
2c7b2330a7 loader.js: Support behaviors as well as multipart update targets 2021-01-13 17:16:30 +01:00
Johannes Meyer
0b94489c7e loader.js: Introduce new header X-Icinga-Location-Query
This header is only used in case the response includes
multipart content. It's meant to provide a new query
string that replaces the one of the targeted container
and the resulting change also replaces the current
history entry.
2020-11-06 11:26:05 +01:00
Johannes Meyer
70c3023f3c loader.js: Also match newlines when interpreting multipart content 2020-11-06 11:21:33 +01:00
Johannes Meyer
e68e8c8e9c loader.js: Only discard content if a renderHook returns null
Previously any false value had this effect, though empty strings
were also discarded due to this. However, in case an empty string
is the content in the first place, the content must be updated.
2020-11-06 11:21:33 +01:00
Johannes Meyer
4ce9165f77 js: Don't force focus in multipart updates if focus isn't affected 2020-11-06 11:20:28 +01:00
Johannes Meyer
2a64a97302 js: Don't add class impact to already finished targets 2020-06-08 10:49:02 +02:00
Alexander A. Klimov
4232a344b7 Icinga.Loader#onFailure(): treat 5xx response as connection failure
... not to break the container with the reverse proxy's response not fitting into our layout.

refs #4133
2020-04-24 08:39:23 +02:00
Johannes Meyer
344598e845 loader.js: Wait for cols being painted prior adding class impact
Allows for the new loading effect's transition to play correctly
also for columns which get opened the first time.
2020-04-14 10:40:23 +02:00
Johannes Meyer
969c1615c7 history.js: Don't load location bar as if it's an autorefresh 2020-02-28 14:37:46 +01:00
nmartini
1cf2f767a2 Make sure that class container has its container 2020-02-28 08:30:23 +01:00
Johannes Meyer
3464455021 js: Preserve scroll position if focus is forced to a particular element 2020-01-16 15:54:17 +01:00
Johannes Meyer
8bc84a5f9e js: Teach the url parsing a final lesson about query strings
`utils.parseParams()` now returns an array instead of an object.
This may require some changes in modules using this directly or
by `utils.parseUrl().params`

refs #4056
2020-01-16 13:45:10 +01:00
Johannes Meyer
844cb911a4 loader.js: Use utils.addUrlFlag instead of the now deprecated one 2020-01-15 08:00:04 +01:00
Eric Lippmann
7f8ee4f94d JS: Deprecate Icinga.Loader.addUrlFlag() in favor of Icinga.Utils.addUrlFlag() 2020-01-14 14:58:34 +01:00
ValeDaRold
5edd267f2a Refresh container if X-Icinga-Extra-Updates with length 1 is defined (#3970)
* Refresh container if X-Icinga-Extra-Updates with length 1 is defined
2019-12-12 13:50:03 +01:00
Johannes Meyer
d6677bfb66 loader.js: Also preserve scroll position of display:flex containers 2019-12-11 15:27:03 +01:00
Johannes Meyer
55b9b44be9 js: Fix error when focusing navigation anchors 2019-12-11 09:27:18 +01:00
Johannes Meyer
4af48c797d js: Remove ui.fixControls() and ui.initializeControls()
Hooray!
2019-12-06 15:39:14 +01:00
Johannes Meyer
48098a2830 js: Don't initialize modules using a beforerender event
`beforerender` is already too late. Module initialization
done using an event handler is wrong anyway. It's some
kind of bootstrapping after all and should be performed
by parts of the code which is directly responsible for
DOM content handling of modules. (i.e. loader.js)

This change though introduces a side-effect which was
not the case previously: Nested `.container` elements
trigger `rendered` events now. I've introduced this to
ensure we're also lazy loading modules and let them
handle their `rendered` events right after a redirect
which rerendered the layout. (Only `#layout` got a
`rendered` event then prior to this change)
2019-11-21 09:55:20 +01:00
Johannes Meyer
5f739deea3 loader.js: Enhance __BACK__ handling 2019-11-05 15:04:23 +01:00