Commit Graph

990 Commits

Author SHA1 Message Date
Sukhwinder Dhillon 74369b7bf4 Modal.js: Prevent unnecessarily `onKeyDown` call 2025-02-03 10:10:49 +01:00
Johannes Meyer ca2778eb46 form.js: Ignore buttons again when being asked to render content
This slipped through, as I thought the CSS selector `:input`, which
was used previously, is invalid. Although, it's a jQuery specific
selector -.-, which was also previously used.

fixes #5293
2024-11-28 16:57:19 +01:00
Johannes Meyer eef276be93 js: Use a submit event's `submitter` property to identify the submit button 2024-11-04 16:07:10 +01:00
Sukhwinder Dhillon cc9572d9c5 Flyout menu: Render menu `bottom-up` if it exceeds the viewport height 2024-08-14 16:29:33 +02:00
Johannes Meyer 9ef4c71cec js: Fix error on app startup
jQuery seems to re-cycle event object references oO
2024-08-07 14:35:14 +02:00
Johannes Meyer 97f8767970 js: Only add `.impact` to a container's content 2024-08-07 14:33:14 +02:00
Johannes Meyer 8ec42b05f8 js: Explicitly update history when col2 is closed
Instead of doing this by default. There are too many
cases where this isn't necessary at all.

fixes #5178
2024-08-07 13:39:41 +02:00
Johannes Meyer bb47844646 js: Don't adjust style by using element.cssText
That's prohibited if using `script-src 'self';` in the csp header
2024-08-07 11:39:58 +02:00
Johannes Meyer 6964bd19a2 js: Improve rejection of autorefresh responses
Don't reject autorefreshes if an autosubmit
element is focused but not interacted with

fixes #4996
2024-08-07 11:20:11 +02:00
Johannes Meyer a48a6ebcb5 js: Really stop rendering if a hook discards content
This is a potential breaking change for behaviors which
rely on being able to change content in-place even if
the response's content is not applied. This is the case
for grafana's iframe behavior, though that's more a hack
than a necessity so it doesn't break. I've found no other
implementations so I guess it's fine including it here.
2024-08-07 11:20:11 +02:00
Johannes Meyer c79b513066 js: Apply render hooks in a defined order
Currently, form first and detach second.
Any other last. (e.g. grafana's iframe)
2024-08-07 11:20:11 +02:00
Johannes Meyer 30b540952a loader.js: Don't consider redirected form submits as auto submits
A redirect caused by a form submit is **never** an automatic submit.
Unless I'm missing something here. There is one way this may be true,
as ipl forms without a submit button are indeed successful due to a
autosubmit element, but they don't redirect by default. So if the
controller redirects in such a case, the form should have a submit
button, I guess..

Anyway, this is necessary due to the previous commit as this may
otherwise cause form submits, that re-render layout during a redirect,
are considered being auto submitted. (Such as the login form)
2023-10-27 10:15:47 +02:00
Johannes Meyer 4743c5f5c8 loader.js: Really don't push redirects to history
refs #4879
2023-10-27 10:15:47 +02:00
Johannes Meyer 9194378c3c js: Don't refresh twice upon `__BACK__` 2023-09-26 15:04:07 +02:00
Yonas Habteab d186604b62 Allow to define row count after which a collapsible can be collapsed 2023-09-19 14:37:55 +02:00
Johannes Meyer 6e16ded825 loader.js: Don't attempt to load an extra update to a closed column 2023-09-07 13:00:45 +02:00
Johannes Meyer a3c04f9108 loader.js: Allow to initiate a refresh with `__REFRESH__` 2023-09-07 12:59:53 +02:00
Johannes Meyer 8f5b62f532 loader.js: Perform a proper redirect upon `__CLOSE__`
This allows the temporary adjustment of the autorefresh
interval.
2023-09-07 12:07:48 +02:00
Johannes Meyer 03f62887b8 loader.js: Don't refresh twice upon `__CLOSE__` 2023-09-07 09:42:05 +02:00
Sukhwinder Dhillon 9dd21841a3 loader.js: Push current state to history only on `onComplete`.
- Previously, in case of `abort` the url was already pushed to history at the beginning of `onFailure`, setting `addToHistory` to true only prevents it from being added twice (again in `onComplete`).
- Now we only push the url to history in `onComplete`, so setting `addToHistory` to false is only necessary if req is scripted.
- We intentionally push the canceled url into history to continue navigating with the browser`s back/forward key.
2023-09-07 09:22:24 +02:00
Sukhwinder Dhillon d794439537 ui.js: Update browser address bar url when container closes
`stopPendingRequestsFor()` cancel the pending request but push the canceled url to history (by calling `loader::OnFailure` internally).
Now the `icingaUrl` is set again, remove it and push again the current state to history.
2023-09-07 09:22:24 +02:00
Sukhwinder Dhillon f3f35f86fd ui.js: Add event `column-moved`
- Param1 is the event itself (event.target.id == #col where the content is moved)
- Param2 is the soucre col id, form which the content is moved
2023-09-07 08:57:37 +02:00
Johannes Meyer c3b1ad12ab loader.js: Don't update history for redirects
A redirect now also does NOT:

* Remove `.impact` from the container
* Try to set a menu item active..

fixes #4879
2023-08-29 15:02:44 +02:00
raviks789 da1bf7048d Remove inline scripts
Remove inline scripts present in `layout.phtml` and `logout.phtml` to prevent CSP violation.
2023-08-28 16:40:37 +02:00
raviks789 459f4198c3 Replace static inline styles with css class
The static inline styles are replaced with css class to avoid Content-Security-Policy violations.
2023-08-28 16:30:12 +02:00
Yonas Habteab 9c7d19ea95 JS: Don't always prefix extra updates containers with `#` 2023-08-11 16:14:17 +02:00
Johannes Meyer 4a52a653e4 js: Always load redirects to their designated target
The server applies the redirection magic now, but only
for compatibility reasons.

resolves #4881
2023-08-11 16:08:00 +02:00
Johannes Meyer 51992f414e modal.js: Use a modal toggle's container as redirect target by default
Not the container's base target. The redirect target may still be
overridden by `data-base-target` on the `form` or by the response
using `X-Icinga-Container`.
2023-08-11 10:32:29 +02:00
Johannes Meyer 257a7070a1 js: Support `__CLOSE__` as extra update 2023-08-11 10:32:29 +02:00
Johannes Meyer eed6374dd2 js: Enhance server side container closing
* Let response header `X-Icinga-Container` either influence a request's `$target` or `$redirectTarget`, but not both
* Close a request's `$target` instead of the `$redirectTarget` upon the redirect url `__CLOSE__`

* Issuing a `__CLOSE__` in a detail url still closes `#col2` and refreshes `#col1`
* Issuing a `__CLOSE__` for a nested container still empties it
* Issuing a `__CLOSE__` in a modal, now refreshes the modal openers container
* If `X-Icinga-Extra-Updates` is set, automatic refreshing won't happen
2023-08-11 10:32:29 +02:00
Yonas Habteab 4ccebb78b5 `loader.js`: Allow to override the actual form action using `formaction` attr 2023-07-18 10:47:52 +02:00
Johannes Meyer 10d3fb64f9 js: Automatically transform .time-until widgets into .time-ago ones 2023-06-22 15:02:37 +02:00
raviks789 f74041e00a Javascript: Add `copy-to-clipboard` behavior
Utilizes `CopyToClipboard.js` from ipl-web
2023-06-20 12:06:27 +02:00
Eric Lippmann a3235555bb js: Also preserve scroll-y upon auto-refresh 2023-05-19 15:29:44 +02:00
Johannes Meyer cb6a0c120f events.js: Trigger a real submit upon autosubmit 2023-05-19 14:53:31 +02:00
Johannes Meyer 7da5eb0972 modal.js: Trigger a real submit upon autosubmit 2023-05-19 14:53:31 +02:00
Johannes Meyer 63eae12d33 loader.js: Transmit nearest identifiable parent as origin..
..upon autosubmit if the real element has no id or name.
2023-05-19 14:42:00 +02:00
Johannes Meyer 88caf3c141 loader.js: Empty nested containers upon `__CLOSE__` 2023-05-19 14:17:41 +02:00
Johannes Meyer cbf8cfc738 js: Transmit `X-Icinga-AutoSubmittedBy` upon autosubmits
This header contains the name or id of the element responsible
for triggering the automatic form submission.
2023-01-12 09:54:18 +01:00
Johannes Meyer 4641d8e820 js: Don't disable inputs upon auto-submits at all 2023-01-12 09:39:31 +01:00
Johannes Meyer 7cea0d78e4 js: Only disable submit buttons on form submit
Previously all `input` elements (text, date, number, ...)
got also disabled. This is unecessary.
2023-01-12 09:39:31 +01:00
Johannes Meyer 8cd892359d form.js: Don't ignore autosubmit elements
A while ago this already has changed so that autosubmit
responses are guaranteed to be applied. Thus this
exception is now obsolete.

fixes #4942
2022-12-07 11:57:10 +01:00
Johannes Meyer 9b3e6165ea collapsible.js: Fix invalid default selectors
refs #4884
2022-11-03 16:41:25 +01:00
Johannes Meyer aef6e99cf8 collapsible.js: Add support for external controls 2022-10-10 15:55:33 +02:00
Florian Strohmaier f13161b69d collapsible.js: Enhance markup flexibility 2022-10-10 15:54:24 +02:00
Johannes Meyer 22cb1f2143 utils.js: Optimize performance of `getCSSPath()` 2022-10-10 10:42:45 +02:00
Johannes Meyer c4ce98159c collapsible.js: Use ES6's class syntax 2022-10-10 10:42:45 +02:00
Johannes Meyer b0622dcde2 collapsible.js: Don't use jQuery, but some ES6 features 2022-10-10 10:42:45 +02:00
Johannes Meyer 917e68d68d collapsible.js: Minor performance improvements 2022-10-10 10:42:45 +02:00
Johannes Meyer 17bd3ce14f collapsible.js: Use a data-attr to identify collapsible collapsibles 2022-10-10 10:42:45 +02:00